diff --git a/.github/ci-config-pymultio.yml b/.github/ci-config-pymultio.yml index dc26a8596..eec7fcca7 100644 --- a/.github/ci-config-pymultio.yml +++ b/.github/ci-config-pymultio.yml @@ -6,7 +6,7 @@ dependencies: | qhull/qhull@refs/tags/v8.0.2 ecmwf/eccodes ecmwf/eckit - ecmwf/metkit + ecmwf/metkit@feature/port-mars2grib ecmwf/fckit ecmwf/fdb ecmwf/atlas diff --git a/.github/ci-config.yml b/.github/ci-config.yml index 9c9a177a2..4aa84c9dc 100644 --- a/.github/ci-config.yml +++ b/.github/ci-config.yml @@ -6,7 +6,7 @@ dependencies: | qhull/qhull@refs/tags/v8.0.2 ecmwf/eccodes ecmwf/eckit - ecmwf/metkit + ecmwf/metkit@feature/port-mars2grib ecmwf/fckit ecmwf/fdb ecmwf/atlas diff --git a/.github/ci-hpc-config-pymultio.yml b/.github/ci-hpc-config-pymultio.yml index fd1755270..71e3388e0 100644 --- a/.github/ci-hpc-config-pymultio.yml +++ b/.github/ci-hpc-config-pymultio.yml @@ -7,7 +7,7 @@ build: - ecmwf/ecbuild@develop - ecmwf/eccodes@develop - ecmwf/eckit@develop - - ecmwf/metkit@develop + - ecmwf/metkit@feature/port-mars2grib - ecmwf/fckit@develop - ecmwf/fdb@develop - ecmwf/atlas@develop diff --git a/.github/ci-hpc-config.yml b/.github/ci-hpc-config.yml index 1a340adc2..541c2b145 100644 --- a/.github/ci-hpc-config.yml +++ b/.github/ci-hpc-config.yml @@ -22,7 +22,7 @@ intel_mpi: - ecmwf/ecbuild@develop - ecmwf/eccodes@develop - ecmwf/eckit@develop - - ecmwf/metkit@develop + - ecmwf/metkit@feature/port-mars2grib - ecmwf/fckit@develop - ecmwf/fdb@develop - ecmwf/atlas@develop @@ -54,7 +54,7 @@ hpcx_openmpi: - ecmwf/ecbuild@develop - ecmwf/eccodes@develop - ecmwf/eckit@develop - - ecmwf/metkit@develop + - ecmwf/metkit@feature/port-mars2grib - ecmwf/fckit@develop - ecmwf/fdb@develop - ecmwf/atlas@develop @@ -86,7 +86,7 @@ openmpi: - ecmwf/ecbuild@develop - ecmwf/eccodes@develop - ecmwf/eckit@develop - - ecmwf/metkit@develop + - ecmwf/metkit@feature/port-mars2grib - ecmwf/fckit@develop - ecmwf/fdb@develop - ecmwf/atlas@develop @@ -114,7 +114,7 @@ mpi_off: - ecmwf/ecbuild@develop - ecmwf/eccodes@develop - ecmwf/eckit@develop - - ecmwf/metkit@develop + - ecmwf/metkit@feature/port-mars2grib - ecmwf/fckit@develop - ecmwf/fdb@develop - ecmwf/atlas@develop diff --git a/share/multiom/CMakeLists.txt b/share/multiom/CMakeLists.txt index f6228dd25..c087670e7 100644 --- a/share/multiom/CMakeLists.txt +++ b/share/multiom/CMakeLists.txt @@ -1,12 +1,6 @@ -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/mappings") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings") file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/plans") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/samples") -add_subdirectory(mappings) -add_subdirectory(encodings) add_subdirectory(plans) -add_subdirectory(samples) # Copy the output manager configuration files file(GLOB output_manager_main_file RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") diff --git a/share/multiom/encodings/CMakeLists.txt b/share/multiom/encodings/CMakeLists.txt deleted file mode 100644 index 000a712a6..000000000 --- a/share/multiom/encodings/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple") - -add_subdirectory("ccsds") -add_subdirectory("complex") -add_subdirectory("simple") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/CMakeLists.txt b/share/multiom/encodings/ccsds/CMakeLists.txt deleted file mode 100644 index 5ba6deb25..000000000 --- a/share/multiom/encodings/ccsds/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/largeEnsemble") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble") - -add_subdirectory("deterministic") -add_subdirectory("ensemble") -add_subdirectory("largeEnsemble") -add_subdirectory("reforecast_ensemble") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/deterministic/CMakeLists.txt b/share/multiom/encodings/ccsds/deterministic/CMakeLists.txt deleted file mode 100644 index 995f280de..000000000 --- a/share/multiom/encodings/ccsds/deterministic/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/hl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/ml") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/pl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/pt") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/pv") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/sfc") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/sol") - -add_subdirectory("hl") -add_subdirectory("ml") -add_subdirectory("pl") -add_subdirectory("pt") -add_subdirectory("pv") -add_subdirectory("sfc") -add_subdirectory("sol") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/deterministic - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/deterministic/hl/CMakeLists.txt b/share/multiom/encodings/ccsds/deterministic/hl/CMakeLists.txt deleted file mode 100644 index ce9ea5042..000000000 --- a/share/multiom/encodings/ccsds/deterministic/hl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/hl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/deterministic/hl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 36a9e5106..000000000 --- a/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index d3618aa22..000000000 --- a/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index eaab07316..000000000 --- a/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index f65dd065e..000000000 --- a/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 575e13f10..000000000 --- a/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 5ee7af3f9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index c7ee82dea..000000000 --- a/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 724d51b3a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 4a7509476..000000000 --- a/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index e7166370f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/ml/CMakeLists.txt b/share/multiom/encodings/ccsds/deterministic/ml/CMakeLists.txt deleted file mode 100644 index 9d920659f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/ml/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/ml/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/deterministic/ml - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml deleted file mode 100644 index 5c982a71a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml deleted file mode 100644 index 971154d89..000000000 --- a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml deleted file mode 100644 index 9f789761b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml deleted file mode 100644 index 8882811e8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml deleted file mode 100644 index e1de37c96..000000000 --- a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 321826d4d..000000000 --- a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 915c6d310..000000000 --- a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index bbc4dfb8b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 4cda63e52..000000000 --- a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index c34fe4f85..000000000 --- a/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/CMakeLists.txt b/share/multiom/encodings/ccsds/deterministic/pl/CMakeLists.txt deleted file mode 100644 index 5377b0373..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/pl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/deterministic/pl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 920f0cdc5..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 071659b8c..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 526f7c3ae..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 5f39639a9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 7e5d818b4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 51ad38ac8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 421caae19..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index f6b545859..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index dfbb7941f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index cf5fc44ca..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 0ee30a944..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index d0fe2e8fb..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index baa7a7def..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index e1ac94811..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index f64dd85c3..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index aec72f11b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index a0c28ab99..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 511c6796d..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index d8a1dfbdf..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 9e22854a0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/CMakeLists.txt b/share/multiom/encodings/ccsds/deterministic/pt/CMakeLists.txt deleted file mode 100644 index 5cc486aa0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/pt/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/deterministic/pt - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1.yaml deleted file mode 100644 index b69e98760..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-average-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1001.yaml deleted file mode 100644 index 378e6cad7..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-average-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1036.yaml deleted file mode 100644 index d725568a5..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-average-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-15.yaml deleted file mode 100644 index e1f3405f0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-average-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-36.yaml deleted file mode 100644 index d95f681e8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-average-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 0a508fae3..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 57f3a57ec..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index cd3dd0672..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 0c5149872..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index ab737d2f4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1.yaml deleted file mode 100644 index 7d56713b8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-max-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1001.yaml deleted file mode 100644 index 89d636bcb..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-max-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1036.yaml deleted file mode 100644 index fc8b218d3..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-max-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-15.yaml deleted file mode 100644 index 7c174a221..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-max-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-36.yaml deleted file mode 100644 index 4d88362eb..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-max-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1.yaml deleted file mode 100644 index 98160b146..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-min-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1001.yaml deleted file mode 100644 index 4968ac331..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-min-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1036.yaml deleted file mode 100644 index 2e6e757c9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-min-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-15.yaml deleted file mode 100644 index 94dfaf074..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-min-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-36.yaml deleted file mode 100644 index 526bbe2b8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-min-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1.yaml deleted file mode 100644 index c7c8dcf40..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-std-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1001.yaml deleted file mode 100644 index a143b4e02..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-std-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1036.yaml deleted file mode 100644 index 13bd1a86c..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-std-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-15.yaml deleted file mode 100644 index 1db173b2f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-std-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-36.yaml deleted file mode 100644 index ef662601a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-std-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pv/CMakeLists.txt b/share/multiom/encodings/ccsds/deterministic/pv/CMakeLists.txt deleted file mode 100644 index 5d4a76284..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pv/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/pv/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/deterministic/pv - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index e8cbaa90f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 061384340..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index a0580fadc..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index d92e018c8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 54ea5f3eb..000000000 --- a/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/CMakeLists.txt b/share/multiom/encodings/ccsds/deterministic/sfc/CMakeLists.txt deleted file mode 100644 index e4bea2974..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/deterministic/sfc - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 51877c6b0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 9b72ae867..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 96e3405b0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 4d0dd5c58..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 44a5b8395..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index f005ec02b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 32 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 10371021d..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 32 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index cb470265a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 32 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 5d44da55e..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 32 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index de9fb808a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 32 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 671df8871..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 99 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 8197e773d..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 99 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 74504dcab..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 99 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 67ff79b80..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 99 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 96605b584..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 99 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 7bf5c6dcf..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 8f9331a94..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 972e088f9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 20e2a97af..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index a0e63f08d..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml deleted file mode 100644 index 60c65d9d2..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml deleted file mode 100644 index 5de52f295..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml deleted file mode 100644 index c5f871fea..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml deleted file mode 100644 index 555db1231..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml deleted file mode 100644 index b5f7e3fdc..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 777a7f466..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 8fafd7fdb..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index f6b952213..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index bf3412a40..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index ca55cee66..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 083a1947f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 763164a97..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 7e56ec5d8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 66a66a64a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index e3147e969..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 54fdc2667..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 4782b1106..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 78faa0c51..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index fe0e98b33..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 7b8316424..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml deleted file mode 100644 index cee798d49..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml deleted file mode 100644 index ed6d89f85..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml deleted file mode 100644 index 30d934145..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml deleted file mode 100644 index 045c49533..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml deleted file mode 100644 index ef643ad03..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 56a720fd2..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index c873f0af6..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 941f4be7f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index ac6b6aaee..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 60ad44c61..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index b4acb675a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index 53867900c..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 6f55c4d60..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index a4ac72332..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index d5d8a9a81..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index 93d5c013f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index 10c39cf8d..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 60b3e9ff6..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index c1ec39658..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index e045b7820..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 5c6afd5b4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 28c54dde2..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 649ae67e8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 4ef68d876..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index c6aaf159d..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml deleted file mode 100644 index 2dc96f7ed..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml deleted file mode 100644 index 49da91d66..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml deleted file mode 100644 index 455c0bf02..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml deleted file mode 100644 index b25d3c051..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml deleted file mode 100644 index 3ea511b45..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index e1cd47197..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index ca98e7db5..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 260202e61..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index df63628fc..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 094b738d8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index 0ae6bc4b5..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index c95c152a7..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 8b4ba6e38..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 355aa0af6..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 1fccc912b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 2eed27145..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index d78d5a115..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index ff5dbf971..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 42800acc4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 221200ae9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index feba56a66..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index 528dc12a9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 3af07f635..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 577bbd252..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index e6493cadf..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 224cdf5c9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 2cedec300..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 0900323b0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 9d813355b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 22824833b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 4fd16059f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 3f2269a57..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 154191ac0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index a43ba1072..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index fae39d5ca..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 82e2fd739..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 09d4fb4c9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 640f8d1cd..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 35de15832..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 61599411d..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 217c8cc72..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index d8c1edf15..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index d8ffabfd1..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index a5e8e06d9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index cb6b962a9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index abc84ac4b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 60206dca4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 10b24a831..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index f631f2eb9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index f9e3303fb..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index a5270326b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 355b9fcc2..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 469a38e54..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 78ef819a9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 44a6ba929..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index a19c345b6..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 7b36f00df..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 592d07a3e..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 89acbb242..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index fdadf9ef8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 4d6102e69..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 0a329ac1a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index a4a017088..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index d0433a1bb..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 2bccb8db4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml deleted file mode 100644 index 69dedf055..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml deleted file mode 100644 index 445338761..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml deleted file mode 100644 index 71e4e0f02..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml deleted file mode 100644 index 57cc394af..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml deleted file mode 100644 index ea3a5ade1..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index efe4142c0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index c1e45c3fe..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 167875756..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 9738e1171..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index c95867f79..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index a5a03cb62..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 1c2465b0c..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index d0e40141f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 282160cef..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 8cbc192ca..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 750837282..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index dcdb923cd..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index d0d92e0c4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 1b217bfab..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 29443cd05..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 0bd8adba1..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 1a8a94180..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 2d70c3152..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index c8c5b07ff..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 09ee2fae0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index b1f3c167e..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 71d8f61a8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 1a1c8264d..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 0a3f409c5..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 22fdace44..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml deleted file mode 100644 index 23bf55ed5..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml deleted file mode 100644 index 34d4b91fb..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml deleted file mode 100644 index 3fbb0428c..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml deleted file mode 100644 index 73bee63e8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml deleted file mode 100644 index 4791c7a44..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 4a9735710..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index ea42aa334..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index d7e8238aa..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index cb31d9da3..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index dad393bef..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml deleted file mode 100644 index 321e630f1..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml deleted file mode 100644 index b96fc3ac1..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml deleted file mode 100644 index 6350b14dd..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml deleted file mode 100644 index a470a2082..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml deleted file mode 100644 index b15e380f2..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml deleted file mode 100644 index 05aa085af..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 42 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml deleted file mode 100644 index fb80ab505..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 42 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml deleted file mode 100644 index 1705a94e7..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 42 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml deleted file mode 100644 index 75f432d15..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 42 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml deleted file mode 100644 index 8149c6c0d..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 42 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 46b7a73a8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 40 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 4437e7393..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 40 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 009835b90..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 40 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 1a9ec0016..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 40 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 0366bbee4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 40 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml deleted file mode 100644 index 9522d8121..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml deleted file mode 100644 index d92070a6c..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,107 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml deleted file mode 100644 index 3ac21b5bf..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,107 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml deleted file mode 100644 index e8d921344..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml deleted file mode 100644 index a8f4610d6..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml +++ /dev/null @@ -1,107 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1.yaml deleted file mode 100644 index b0023cfcc..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1001.yaml deleted file mode 100644 index 8468ace79..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1036.yaml deleted file mode 100644 index 70dea0bda..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-15.yaml deleted file mode 100644 index ba5bec779..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-36.yaml deleted file mode 100644 index 82e5111f9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index 34b69f43a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index eb2fc1cd4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index e9b8e0613..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index 4dffa1f5e..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index c8ca8f25c..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index 51a879354..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index a1f109b33..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index a10c4a3d8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index b4b414db7..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 294c7f740..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 640c29c7c..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 1d4903078..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index e96495df4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index f853512f2..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 763cf7acd..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1.yaml deleted file mode 100644 index 778b178f9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1001.yaml deleted file mode 100644 index fb6df802d..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1036.yaml deleted file mode 100644 index e51f39eb1..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-15.yaml deleted file mode 100644 index a56b9950a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-15.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-36.yaml deleted file mode 100644 index cafa1b322..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-36.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index cd587799a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 871d66284..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,126 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 9f97b6d28..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,126 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index ef45a03be..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 56a7d6556..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,126 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index e2932d073..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index a4f2d979a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index 0d786cc52..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index c1fdeb471..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index 83ff5549c..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index d1fdd5ba0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index 09343dfc6..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 296bf3ed3..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index bb3935d8f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index 5cf6991ac..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index d29dc634b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index 0bdd9bc92..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 44252eea5..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index d7b6b7b52..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 651fc2891..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index a264b2f13..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index cc8c40077..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 53fd1ab43..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index f76c038fd..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 680649642..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index 728efc75f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index 58b7cc951..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index 2e15ace21..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index bceda6009..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index 39e897f4e..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index 8d49b13d9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index dbc4632b6..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 0181e033e..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index 18c6c704c..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index a2da56f68..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index ca3be1467..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index c0a19fc31..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 30cf119c5..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 14bd59b54..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index d663187d1..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index fd12fe682..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index e60e18b25..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 53a74d397..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index b890986f1..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index bb94749b2..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1.yaml deleted file mode 100644 index 2499ab49f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1001.yaml deleted file mode 100644 index 827274e85..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1036.yaml deleted file mode 100644 index 52ff510bc..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-15.yaml deleted file mode 100644 index edf2018e0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-36.yaml deleted file mode 100644 index 02a316ae8..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index 21906f69e..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index 056481602..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index ad787f071..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index 18724efbd..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index c6c0b23a4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index fae284a3a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index a1660c284..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 666c5af14..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 1f02c35a3..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index d976c1b78..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 1b1987b56..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index a4cc2f028..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 3bd89f805..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 4005ac457..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 00245011e..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1.yaml deleted file mode 100644 index 38f298b0b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1001.yaml deleted file mode 100644 index b65a48de0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1036.yaml deleted file mode 100644 index 70ea44ea7..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-15.yaml deleted file mode 100644 index 1df5d61fc..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-36.yaml deleted file mode 100644 index 45f6b604a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index 09ab18509..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index 4ff406d05..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index 14a386899..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index 38ca89de9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index 9c298ab8f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index fdd8fd19c..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index f91199c5f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index b3e45e4fc..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 871a757a9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index e7618923b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index c557bfbcd..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index fa9d7a3f9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index a1e3f3f72..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index b91adf1e2..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 9440c19b6..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index aadaca782..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index a2538d1d0..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 638067200..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index f3b39ad66..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 4cbf42baf..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 4110930aa..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 7c7d548e4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 9a03e4176..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 5300fbc2f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index c64c40877..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index cd5e69eae..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 103 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 2b63de809..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 103 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index a9c244b02..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 103 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index fd16c2fb4..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 103 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 8a991e57b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 103 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/CMakeLists.txt b/share/multiom/encodings/ccsds/deterministic/sol/CMakeLists.txt deleted file mode 100644 index afdfa4f5a..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/deterministic/sol/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/deterministic/sol - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 5572ad4c7..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 926264ec7..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index d487a06ee..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 1b9265df1..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index c9b669683..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1.yaml deleted file mode 100644 index a384429bd..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1001.yaml deleted file mode 100644 index 65b2382b7..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1036.yaml deleted file mode 100644 index 79ac3851f..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-15.yaml deleted file mode 100644 index cc775d701..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-36.yaml deleted file mode 100644 index 1b9dd5ebb..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 8ccf687bc..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index ee567eeb9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 6e8adeb43..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 815b449b9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 84702434e..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml deleted file mode 100644 index 7d35b76b7..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml deleted file mode 100644 index 72517b971..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml deleted file mode 100644 index b2e95588b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml deleted file mode 100644 index f466dfd50..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml deleted file mode 100644 index 72d9aa044..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1.yaml deleted file mode 100644 index a505b6af9..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 989c25393..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 72452c98b..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 3db71e624..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 7293e73bd..000000000 --- a/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/CMakeLists.txt b/share/multiom/encodings/ccsds/ensemble/CMakeLists.txt deleted file mode 100644 index fabb4e36b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/hl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/ml") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/pl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/pt") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/pv") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/sfc") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/sol") - -add_subdirectory("hl") -add_subdirectory("ml") -add_subdirectory("pl") -add_subdirectory("pt") -add_subdirectory("pv") -add_subdirectory("sfc") -add_subdirectory("sol") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/ensemble - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/ensemble/hl/CMakeLists.txt b/share/multiom/encodings/ccsds/ensemble/hl/CMakeLists.txt deleted file mode 100644 index 87e4738d7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/hl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/hl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/ensemble/hl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index a53d1e78d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index d812c2af0..000000000 --- a/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index c2b2b1bfb..000000000 --- a/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index f258a48a7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 203f88b4d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 5d904e9a5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 38c1fc089..000000000 --- a/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index a7a6c3c50..000000000 --- a/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 750bc3acc..000000000 --- a/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 3f03de132..000000000 --- a/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/ml/CMakeLists.txt b/share/multiom/encodings/ccsds/ensemble/ml/CMakeLists.txt deleted file mode 100644 index 3d346d8b2..000000000 --- a/share/multiom/encodings/ccsds/ensemble/ml/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/ml/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/ensemble/ml - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml deleted file mode 100644 index 9599bf0f0..000000000 --- a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml deleted file mode 100644 index 7c2b5f881..000000000 --- a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml deleted file mode 100644 index b730b5bb7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml deleted file mode 100644 index b32497940..000000000 --- a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml deleted file mode 100644 index 0a2c92e8c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 172b2ed99..000000000 --- a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index f2ff38612..000000000 --- a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 0ac46b4f0..000000000 --- a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 9ebb8ace7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index f3171c63c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/CMakeLists.txt b/share/multiom/encodings/ccsds/ensemble/pl/CMakeLists.txt deleted file mode 100644 index 31538832d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/pl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/ensemble/pl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 90acf4b11..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 7d911b803..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 7b3071287..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index d419df0bc..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index be42fa9ac..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 591ea40e1..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index d266cc4aa..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index a2b5055c5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index ed6570b6c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 24aa4bafa..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index ff8f765b4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 40b15e4bb..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index c9dc03d91..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 9b351baba..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index bb6721a95..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 24e0bf68d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 19e6193b6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 3d88aacd1..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 9168f4918..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 29ad63f20..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/CMakeLists.txt b/share/multiom/encodings/ccsds/ensemble/pt/CMakeLists.txt deleted file mode 100644 index 374b95db3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/pt/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/ensemble/pt - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1.yaml deleted file mode 100644 index 095028499..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-average-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1001.yaml deleted file mode 100644 index 50575fbe3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-average-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1036.yaml deleted file mode 100644 index c32763fdf..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-average-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-15.yaml deleted file mode 100644 index b10fe5be6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-average-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-36.yaml deleted file mode 100644 index 4f17c6d8f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-average-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 9e78f382f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 6e7899be0..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 6f1181b94..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 52553c4b3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index f906077b4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1.yaml deleted file mode 100644 index cd9875eeb..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-max-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1001.yaml deleted file mode 100644 index 72ce71351..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-max-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1036.yaml deleted file mode 100644 index 5cc451165..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-max-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-15.yaml deleted file mode 100644 index 3c550bfb4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-max-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-36.yaml deleted file mode 100644 index 6503ab04a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-max-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1.yaml deleted file mode 100644 index cceec6637..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-min-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1001.yaml deleted file mode 100644 index 84814eed7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-min-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1036.yaml deleted file mode 100644 index d4f88a006..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-min-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-15.yaml deleted file mode 100644 index 254121ddc..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-min-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-36.yaml deleted file mode 100644 index cd55d3c90..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-min-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1.yaml deleted file mode 100644 index 70adbee3c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-std-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1001.yaml deleted file mode 100644 index d77edc1de..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-std-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1036.yaml deleted file mode 100644 index 308e0e96c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-std-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-15.yaml deleted file mode 100644 index 234d7a16e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-std-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-36.yaml deleted file mode 100644 index 882ebf3d2..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-std-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pv/CMakeLists.txt b/share/multiom/encodings/ccsds/ensemble/pv/CMakeLists.txt deleted file mode 100644 index c4f930cff..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pv/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/pv/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/ensemble/pv - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 3b374a91b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 4b12d040a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index e236908f0..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index c389cd9f7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index fe920d7b9..000000000 --- a/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/CMakeLists.txt b/share/multiom/encodings/ccsds/ensemble/sfc/CMakeLists.txt deleted file mode 100644 index afb3a7325..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/ensemble/sfc - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 67222027b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 99a75adb7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 77ae3aefd..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 2589ad3c7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index caa816dec..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index bb9150434..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 33 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index d0d92a80f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 33 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index d1ed61150..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 33 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 15e478c6e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 33 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index e2ebf0de2..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 33 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 2c143e84d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 100 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index f6e0ad046..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 100 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index d0cff20b6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 100 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index e3eda2dad..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 100 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 707d63e17..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 100 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 88bda3018..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index ba13cbc67..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index d68d05968..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index a28d28b94..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index ccec5f5b7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml deleted file mode 100644 index 62ceffc44..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml deleted file mode 100644 index e8e3777c9..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml deleted file mode 100644 index 9ba2d91ac..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml deleted file mode 100644 index 27bc346c2..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml deleted file mode 100644 index 2057490e7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index e19d044bf..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,80 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 343153f06..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 839be1cb6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 01cc906f5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,80 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index fc34c1c1f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 0060cba42..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 8ef25b78f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 112ae658a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index b808cf7b2..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index de59dc2c1..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 6515b1da1..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 321dbae0b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 9e0284bb2..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 50dd22028..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 53810ead8..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml deleted file mode 100644 index 33142ead6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml deleted file mode 100644 index f4ae525f1..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml deleted file mode 100644 index 73c049805..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml deleted file mode 100644 index cfd34a0b4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml deleted file mode 100644 index 87dba8c70..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 35e4e0da8..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 981c69ffa..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index ac34f79b3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 3eed72310..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index b73734d64..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index 5704747a6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index 00378f6f9..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 4fd67da1b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index 3bc54c8db..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index eaaa0ea18..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index a7d158e3a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index 1e87ba4da..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 5d7587c70..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index cdb437a9f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index 3f2a068d2..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index b3298c0a7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 00f743029..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 6418e7802..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 7bf6b1f16..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index e58e87513..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml deleted file mode 100644 index 240b11ede..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml deleted file mode 100644 index d68d338b4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml deleted file mode 100644 index 08b651aeb..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml deleted file mode 100644 index dfa6173d5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml deleted file mode 100644 index c55514f51..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 175148498..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index e3adcb8dc..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 3e3a6ae12..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 89c3ac209..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 41ba8ab7a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index 31505822c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index 1c43190cf..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 020843b60..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 3eb5f440f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 7af2f4c10..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 93100525c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 28a3991db..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index e8eafd1b5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 8b104cad0..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 8364bd82f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index c37507576..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index c1abda569..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index e77eba97d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index f9bac595a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index e8230ef9d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 33e9b3451..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 9818eaebe..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 5894808ff..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 2b9c62cc5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 5afe20ed6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 0437659c9..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 42978c658..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index aa3ff3f98..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 52e247e09..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 8328e5e7c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 3acf8b4bb..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index a44244701..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 649ea566b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 4b5a06283..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 602847db5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 535ec642e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index d556482af..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 3e623cdfd..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index a30539d37..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 26474ae3f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index e8d982842..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index aecc2fc73..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 9aab7874f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 61b0013a6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 64676ab28..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 74f92d9ee..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index f21805de6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 88838350d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 2bf496d3c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 007333eda..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index ee0d46dbc..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 48905ad86..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 6cbb0dc64..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 390922fcd..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index ad587e60d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index d1420a678..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 1d8840d26..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index a60a487ad..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 7ee710301..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index f16f6661b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml deleted file mode 100644 index 1d0b3b3c4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml deleted file mode 100644 index d5869aa80..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml deleted file mode 100644 index 9408687c8..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml deleted file mode 100644 index 67d9aaee6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml deleted file mode 100644 index 90507de46..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index b90c32ba4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index b366ca866..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 7033d6dd8..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 426a25741..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 12712bd40..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index c7e8f2d05..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 4ab13b73f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 07acfe067..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 62ba70533..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index d09d81084..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 9b70deff3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index c56912ea5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 5df5d3187..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index ef49e2b5d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index a6245d77c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 0c7ceafce..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 00b35fcb1..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index c1ac971cb..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 3d43df54e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index ad7443875..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index f78d6e930..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 437742fcc..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index d5b2d1028..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 16a78f24d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 61b339744..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml deleted file mode 100644 index 8e518b3c6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml deleted file mode 100644 index d6b25e144..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml deleted file mode 100644 index 9dc477024..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml deleted file mode 100644 index 3071b3e88..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml deleted file mode 100644 index ce8d2eeaa..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 453d18da4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 29faf5dc3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 108779ea3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index fc5fad309..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 7425cd3b9..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml deleted file mode 100644 index 736d0f5f3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml deleted file mode 100644 index 41680e15f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml deleted file mode 100644 index cbc0c54ef..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml deleted file mode 100644 index 0943e0467..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml deleted file mode 100644 index bed4dd6f3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml deleted file mode 100644 index fc281cc20..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml +++ /dev/null @@ -1,83 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 43 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml deleted file mode 100644 index 73f96dc45..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 43 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml deleted file mode 100644 index e9c785f32..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 43 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml deleted file mode 100644 index 73cded62e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml +++ /dev/null @@ -1,83 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 43 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml deleted file mode 100644 index f57ede366..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 43 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 96be907cf..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 41 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index fa0a98b9a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 41 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 3e3478d2e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 41 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index c2f1bcc63..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 41 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 3815b9659..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 41 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml deleted file mode 100644 index f796594bf..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml +++ /dev/null @@ -1,111 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml deleted file mode 100644 index 524bfce62..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml deleted file mode 100644 index f2b138df9..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml deleted file mode 100644 index 417f8f523..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml +++ /dev/null @@ -1,111 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml deleted file mode 100644 index ef5983711..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1.yaml deleted file mode 100644 index 14ff350e6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml deleted file mode 100644 index 729981602..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml deleted file mode 100644 index 975afd7f6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-15.yaml deleted file mode 100644 index 4cf3ecf1c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-36.yaml deleted file mode 100644 index a121cc2e6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index e4717f388..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index 53a12066e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index 917def14e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index 1fa825bb2..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index 3893ff0f4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index 261d94fc3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index 5e26b591a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 88bcfedce..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index f7708970b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 9a88ab70c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index a912c35c7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 79009e8f9..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index fa7d9dba5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index f1d043e21..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index d38d50fee..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml deleted file mode 100644 index 228a9c648..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml deleted file mode 100644 index 65be58685..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml deleted file mode 100644 index b8de3982e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml deleted file mode 100644 index c42b59893..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml deleted file mode 100644 index 6d8cd89ef..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 1e7e86581..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,130 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 23a82b250..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index c1caaa7b4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 67c0668c6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,130 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 8a7a5ba54..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index 673409674..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index 733bce922..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index 0d1a0fa57..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index 10a91890d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index 4f2548766..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index 058080299..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index 0a8bb5be8..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 249730a2b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index fb9aec7a6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index 4ec72a102..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index 24038ca34..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index a60b34698..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 087a52216..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 0ccf4571b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 90845e242..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 74e104895..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 5202248e3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index b122b9df3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index f7f786556..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 5cbf60a9a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index a7282543a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index 75736d9c3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index 35d60547f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index 5f8a338ab..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index 643b7d3da..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index dd329d522..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index ff88017bd..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 1327ab99c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index 5939a049c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index 4d2e429e2..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index a19fe2e24..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index d837d29b8..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index d4fa175d1..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 18eb77807..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 76a413f9b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 9195f5604..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 82e9e5386..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 8eaf6715e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 4790500e9..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 67cbc1d73..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml deleted file mode 100644 index 97e69c2dd..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml deleted file mode 100644 index f484170d4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml deleted file mode 100644 index 13501f581..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml deleted file mode 100644 index 490e96dd6..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml deleted file mode 100644 index 56d1c4b64..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index 5ec0c64f7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index f4b2fec6b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index e33ebb460..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index f2ef3a165..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index c91017d24..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index 624643969..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index 7e8eaf829..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 8701121f4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index b9a95e957..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index afa6056a5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 1e19b93ad..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 598fe305e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 25238f3d8..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index fc052fcb8..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index d1159597f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml deleted file mode 100644 index a5add3826..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml deleted file mode 100644 index 31ca6709f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml deleted file mode 100644 index 874e967b4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml deleted file mode 100644 index 7113b33d9..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml deleted file mode 100644 index 62ba1a8af..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index 2a37d188c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index 8b69194bc..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index 120de7ef3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index a640dc61d..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index 381a0e4ba..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index a73143e6a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index 9767abf02..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 612b85ec1..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 4c2747e23..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 69966cfe4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 0396a8b37..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 9816b3c91..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index a0c979828..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index d944c3211..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index cf178fba3..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 0c240a583..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index a757f854e..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index f882a92b4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 5da08db40..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 9517389ea..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 54e6a4a44..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 283cb1de7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 7747e9245..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 5352e8223..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 84021a05a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 237165bad..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 104 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 6309083a4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 104 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index d4795b19a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 104 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index dee3d6b59..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 104 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 5d4d54619..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 104 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/CMakeLists.txt b/share/multiom/encodings/ccsds/ensemble/sol/CMakeLists.txt deleted file mode 100644 index 95af67b83..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/ensemble/sol/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/ensemble/sol - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index dbe9a857f..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 941e03b4a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index b01c24fa8..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 357614ec1..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 3bb0893b2..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml deleted file mode 100644 index b8401711b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml deleted file mode 100644 index 3ff1bec6a..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml deleted file mode 100644 index 69ddf6617..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml deleted file mode 100644 index d43c2480b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml deleted file mode 100644 index c1426c5d5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 18cec2378..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 7aeba0330..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index d58a7522b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 148a6dd5c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 1a530fabf..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml deleted file mode 100644 index a6969de2b..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml deleted file mode 100644 index 48b7823d7..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml deleted file mode 100644 index 2b1d5d3d9..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml deleted file mode 100644 index 74bf06ec2..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml deleted file mode 100644 index 3be409643..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index fea32d67c..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 26f3cb3f5..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 162fe9906..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index a0a80e7c9..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 82521c3d4..000000000 --- a/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/largeEnsemble/CMakeLists.txt b/share/multiom/encodings/ccsds/largeEnsemble/CMakeLists.txt deleted file mode 100644 index 5da5a384d..000000000 --- a/share/multiom/encodings/ccsds/largeEnsemble/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al") - -add_subdirectory("al") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/largeEnsemble/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/largeEnsemble - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/largeEnsemble/al/CMakeLists.txt b/share/multiom/encodings/ccsds/largeEnsemble/al/CMakeLists.txt deleted file mode 100644 index bf6520ed1..000000000 --- a/share/multiom/encodings/ccsds/largeEnsemble/al/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/largeEnsemble/al - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 6399ce435..000000000 --- a/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: levtype - operation: match - value: al - - type: param - operation: match - values: - - "213101:213160" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 143 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: abstractSingleLevel - ensemble-configurator: - type: default - random-patterns-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 400da7385..000000000 --- a/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: levtype - operation: match - value: al - - type: param - operation: match - values: - - "213101:213160" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 143 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: abstractSingleLevel - ensemble-configurator: - type: default - random-patterns-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 062f72278..000000000 --- a/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: levtype - operation: match - value: al - - type: param - operation: match - values: - - "213101:213160" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 143 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: abstractSingleLevel - ensemble-configurator: - type: default - random-patterns-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index e72831944..000000000 --- a/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: levtype - operation: match - value: al - - type: param - operation: match - values: - - "213101:213160" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 143 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: abstractSingleLevel - ensemble-configurator: - type: default - random-patterns-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 3c648d97a..000000000 --- a/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: levtype - operation: match - value: al - - type: param - operation: match - values: - - "213101:213160" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 143 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: abstractSingleLevel - ensemble-configurator: - type: default - random-patterns-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/CMakeLists.txt b/share/multiom/encodings/ccsds/reforecast_ensemble/CMakeLists.txt deleted file mode 100644 index a464ebb9c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol") - -add_subdirectory("hl") -add_subdirectory("ml") -add_subdirectory("pl") -add_subdirectory("pt") -add_subdirectory("pv") -add_subdirectory("sfc") -add_subdirectory("sol") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/reforecast_ensemble - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/CMakeLists.txt b/share/multiom/encodings/ccsds/reforecast_ensemble/hl/CMakeLists.txt deleted file mode 100644 index 18d48dff4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/reforecast_ensemble/hl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index c7b9b94ac..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 5f008d0f3..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index cfe6ebf97..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index da3c985b6..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 17623b22c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index e3fa35c2f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index c94f9758f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index bf883433d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index ee29b280c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index a615eea15..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/CMakeLists.txt b/share/multiom/encodings/ccsds/reforecast_ensemble/ml/CMakeLists.txt deleted file mode 100644 index 79fb6b2d0..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/reforecast_ensemble/ml - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml deleted file mode 100644 index dcfd5886a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml deleted file mode 100644 index 8d93df2fd..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml deleted file mode 100644 index 222f8db0b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml deleted file mode 100644 index 424fefdfb..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml deleted file mode 100644 index c80f85321..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 83d97a80f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index d0aa70bd8..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index b1a894667..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 79c009cd5..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 451f71da3..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/CMakeLists.txt b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/CMakeLists.txt deleted file mode 100644 index a97a3f490..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/reforecast_ensemble/pl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index a9073161b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 805be05b4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index bc0428f16..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 6e08b23e0..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 519a2cf57..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index bbca53691..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index cb05396ef..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index f9fa1082e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index d7b0c622d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 9d7817917..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 6284a818f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index d026c4b2b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 1ed6f8b19..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index be2e0a17d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 7f6419a9b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index da178e082..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 0dc835ae2..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index a8d5b130f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index caf09b6ff..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index e1a195032..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/CMakeLists.txt b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/CMakeLists.txt deleted file mode 100644 index 006d54566..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/reforecast_ensemble/pt - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1.yaml deleted file mode 100644 index ae9fa1e57..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1001.yaml deleted file mode 100644 index 519c2f868..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1036.yaml deleted file mode 100644 index 7a2b61932..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-15.yaml deleted file mode 100644 index c8e2ce29e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-36.yaml deleted file mode 100644 index d25732431..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 12fc42e36..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index c7c7a884c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 61a3c2bac..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index a9e5a5a5c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 31dde4f9c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1.yaml deleted file mode 100644 index 82f18a8c3..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1001.yaml deleted file mode 100644 index a1280ddfa..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1036.yaml deleted file mode 100644 index 81f4a5d3f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-15.yaml deleted file mode 100644 index 251587ca1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-36.yaml deleted file mode 100644 index 92bc99e16..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1.yaml deleted file mode 100644 index dc167e3e9..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1001.yaml deleted file mode 100644 index 616e93c75..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1036.yaml deleted file mode 100644 index 9b34d55df..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-15.yaml deleted file mode 100644 index 02c52ad9d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-36.yaml deleted file mode 100644 index 4ce753d77..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1.yaml deleted file mode 100644 index 9a6c2933e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1001.yaml deleted file mode 100644 index c6dbfd1f6..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1036.yaml deleted file mode 100644 index 1fff3b5d7..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-15.yaml deleted file mode 100644 index 52200899b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-36.yaml deleted file mode 100644 index 79800a3dd..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/CMakeLists.txt b/share/multiom/encodings/ccsds/reforecast_ensemble/pv/CMakeLists.txt deleted file mode 100644 index ad055c888..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/reforecast_ensemble/pv - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 212b1e8df..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index b0d379afc..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 64412a7d6..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index b66e42c4d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 346345864..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/CMakeLists.txt b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/CMakeLists.txt deleted file mode 100644 index 26fb786c1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/reforecast_ensemble/sfc - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 1416af97f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index dee8711be..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 9365410ed..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index bb994655e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 52071ebf0..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 7584f7832..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 8111842b3..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 6d19f3c50..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index b06b0e89d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index d80163689..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index f4aafadfe..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 154146635..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 28634af81..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 1ab78465b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 8b1171dcd..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 442ef946d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 0ece9b199..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 38259d85e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 39bf104f5..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 812369ae9..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml deleted file mode 100644 index 207227dc8..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml deleted file mode 100644 index ae72cf153..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml deleted file mode 100644 index 5b9b06159..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml deleted file mode 100644 index ca7eaf852..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml deleted file mode 100644 index fed71a2d5..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 06a43562c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,80 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 781aaa4dc..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 704dbcf55..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index ebfd90515..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,80 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index fc081fb45..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index ae2f14a7f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 74e0e913a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index a5408e3ab..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index a863d052e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 1ff44a3e6..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 841c3ba39..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 86238b9c1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index f1f3f7628..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 61681babf..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 2c0102e58..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml deleted file mode 100644 index e53189095..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml deleted file mode 100644 index 26f31f0b2..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml deleted file mode 100644 index b04c1bb42..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml deleted file mode 100644 index d1f67e5ce..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml deleted file mode 100644 index fa5f02133..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 436988424..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 86b299da9..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index c338dffb7..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 519a741e3..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index fa340440e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index 79eebe4e0..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index c742bccee..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 114c0a427..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index 12c714649..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index f9aeaf3f8..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index b1e9b65f4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index 37c4540ff..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 41abc588c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index 8a3ca0fb4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index 74dc0d0f4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 65dc890f2..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 2fec2d688..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 73d1a1b94..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index bc1304c00..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 41f4dab10..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml deleted file mode 100644 index d60cd1970..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml deleted file mode 100644 index f6e0f4af5..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml deleted file mode 100644 index 4065440d9..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml deleted file mode 100644 index 74701ed5a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml deleted file mode 100644 index 1ec854170..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index e0cba2575..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 88b08712e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 5185cd7c1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index bc15afe55..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 3126c1767..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index c1b35ed06..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index 36fa575c9..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index aca9f541f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 555d1b06d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 121d79c7d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index e89bf3bdc..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index bb0c4163b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index d76c2c6b7..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index bb21d5697..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 6937f2443..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index 8afa3735d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index 99da1f3f1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 22e92ed91..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 394e4fe48..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index c672740b0..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index a5985d573..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index ca04a4dd9..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index e87860b57..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index e710e38d5..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index c6b5f5a24..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 099cf73bf..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 439376e21..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index d05a4d1fb..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 944c9b687..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 0d3faf4d0..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index d2394c9c6..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 83cc64dd3..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 2cff3af85..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index b57292296..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index b11ee1fca..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 36e2e1a4b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 9bcce3510..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 7ba7490d7..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index d4eb01eb4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index f8553084c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index c7ed783ac..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 46b31d443..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index abe78676a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 6d6fce5cf..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 54a7e4eb1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 09c252ac0..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 1d3274bce..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 14201979a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index f11ac68ca..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 6813875c4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 144b1016a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index e121c258d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index b200a28f8..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 3ff1dc7d9..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 551b410cd..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 630826634..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 08fb61389..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 6b1a233f7..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 9d950d6b7..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index b23083b2d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml deleted file mode 100644 index eb86316a8..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml deleted file mode 100644 index 4a023a943..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml deleted file mode 100644 index 369784bb1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml deleted file mode 100644 index 327fac8a4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml deleted file mode 100644 index 1e9fefcba..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 8fd46229d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index aedcea5e4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 545ce5765..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 65f586186..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 88855f193..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 9d219d061..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 03debfd88..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 9bc9ea1d6..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 6ec30a5c7..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 5b5298307..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index c722239dc..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index af3140c09..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index b8a614686..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index fdb2308d4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 0889f08ef..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index ddf7cc15f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 196f07525..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index f52530172..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index a3ad3bf20..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 7603dc545..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 05e58613b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index bc40ddc52..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index aa5b18f54..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index a8b6d03d5..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index ab6a5a690..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml deleted file mode 100644 index bda6a831a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml deleted file mode 100644 index 0882412bf..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml deleted file mode 100644 index 80831804a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml deleted file mode 100644 index e77aac0af..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml deleted file mode 100644 index 963513787..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 839dc014b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index b42145ab7..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 34f1b97e5..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 7acb0e4b6..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 47c97f168..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml deleted file mode 100644 index 93922ccd3..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml deleted file mode 100644 index d39812480..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml deleted file mode 100644 index 00d12489a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml deleted file mode 100644 index c89a000a8..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml deleted file mode 100644 index e4193ab76..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml deleted file mode 100644 index edffadbdb..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml +++ /dev/null @@ -1,83 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml deleted file mode 100644 index 35eb8a61d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml deleted file mode 100644 index a4330e13f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml deleted file mode 100644 index 648a6323e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml +++ /dev/null @@ -1,83 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml deleted file mode 100644 index 995402c4a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 9362f1c0a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index bf49b38af..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 8903c96d6..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 3eeadd02a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index c7c9a71c0..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml deleted file mode 100644 index 380d70d8a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml +++ /dev/null @@ -1,111 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml deleted file mode 100644 index c8435b4ea..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml deleted file mode 100644 index 80e50e1c4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml deleted file mode 100644 index 7ca837e37..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml +++ /dev/null @@ -1,111 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml deleted file mode 100644 index 4ffa8a0de..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1.yaml deleted file mode 100644 index 927b91c26..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml deleted file mode 100644 index 700270a72..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml deleted file mode 100644 index 98162f941..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-15.yaml deleted file mode 100644 index 8f4afaf00..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-36.yaml deleted file mode 100644 index c8edb2bc6..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index dcc3bb1ad..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index c8d35e8c2..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index 021888194..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index 9913eab51..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index da9c7bcdb..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index d69b29959..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index 10bc7af59..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index df9d8dc6a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index d81350952..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 64a6af58c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 0a5dc318a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 6c4672a83..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index fefcdaf73..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 28f0698bf..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 75acaf6d5..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml deleted file mode 100644 index 555ce1991..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml deleted file mode 100644 index 31aa2fc88..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml deleted file mode 100644 index 03a6050df..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml deleted file mode 100644 index cd5aafc30..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml deleted file mode 100644 index 4bea138c4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 7e648dc17..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,130 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 6364ba25f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index c7f015c81..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index d51bc70f5..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,130 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 1d46b5b94..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index e360e2000..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index 2a877fd46..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index 56c7f289a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index 37b94b2a4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index 36b2f94e1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index fbf98f6d0..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index d246e3706..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 4a1119386..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index 98bb94ef5..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index 76f8f450b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index 52f5327aa..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index 1b7166098..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 7d7d51356..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index b079855bc..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 3894cef3e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 736691d75..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 3ae425198..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 43b7744d4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 4493b5693..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 46cd66994..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index d309914ef..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index 08acf7a3b..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index 91e4ae8f9..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index 07cd92c85..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index 1c4b55a37..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml deleted file mode 100644 index 652b037dd..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml deleted file mode 100644 index 471f21967..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml deleted file mode 100644 index 65861b37d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml deleted file mode 100644 index 01f8c40ad..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml deleted file mode 100644 index e19202a70..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index 680309997..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index c81bdb81e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index fc6eb2052..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 85feb3648..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index cda16927f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index f94ec83ce..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index c1fac0bf3..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index f04285eac..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index f3ea5c48a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index 38434bc20..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml deleted file mode 100644 index 44345c08c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml deleted file mode 100644 index 6179774de..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml deleted file mode 100644 index 36f8dd30d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml deleted file mode 100644 index 622c3581a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml deleted file mode 100644 index 8867a67c4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index b12ac1bb1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index 2cdb7faa1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index a89a3dcab..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index dd54ba677..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index 52c375e55..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index e74ffeacc..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index 95c6fce1d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index 3f65c4368..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index 58adbfa34..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 06b972779..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index a13e334e5..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 1aee4b2c8..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 35e344ed4..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index 0a7735521..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index c049b8782..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml deleted file mode 100644 index 1d77cadd2..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml deleted file mode 100644 index 397d190cc..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml deleted file mode 100644 index 05aad96eb..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml deleted file mode 100644 index fe7d1099d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml deleted file mode 100644 index 89b5dd86c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml deleted file mode 100644 index 877c52c86..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml deleted file mode 100644 index df8c17969..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml deleted file mode 100644 index 0a076c30d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml deleted file mode 100644 index 96de7912c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml deleted file mode 100644 index 9d9f38ec1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml deleted file mode 100644 index fe466a4cd..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml deleted file mode 100644 index e64674f50..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml deleted file mode 100644 index dc99d6762..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml deleted file mode 100644 index bdbd19f77..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml deleted file mode 100644 index 1fa6d98af..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml deleted file mode 100644 index 57eb58c35..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml deleted file mode 100644 index 091671a09..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml deleted file mode 100644 index 3d840e1bf..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml deleted file mode 100644 index f97f79656..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml deleted file mode 100644 index cc1832124..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 82068701a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 090ab7b4c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 74e4ff5d6..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 03492ea3d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 455ad6f25..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 305f69db1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index 0fddc2451..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index eaa767179..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index dfcb936b3..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 3aa90f030..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index c0b6107f0..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index d7a56e00d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 9e00fae32..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 2100a5029..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 692f15302..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/CMakeLists.txt b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/CMakeLists.txt deleted file mode 100644 index 8a008852c..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/ccsds/reforecast_ensemble/sol - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 0b5a6c1e1..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index bc9927550..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 90d12c116..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 14d95245f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 3308e4860..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml deleted file mode 100644 index 9d4465103..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml deleted file mode 100644 index 69b8a9e39..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml deleted file mode 100644 index eac2abfc6..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml deleted file mode 100644 index 60ee5c1df..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml deleted file mode 100644 index 209dec95a..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index 8e6da5637..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index d08d78043..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index dc622299e..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 5090b347d..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index fa63e84fd..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml deleted file mode 100644 index 57210d062..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml deleted file mode 100644 index 97f27ccdd..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml deleted file mode 100644 index 1ade985d2..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml deleted file mode 100644 index 30664fe89..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml deleted file mode 100644 index 07cfa1d7f..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml deleted file mode 100644 index e697ab762..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml deleted file mode 100644 index a3cabca55..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml deleted file mode 100644 index 957c66793..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml deleted file mode 100644 index 4aa734202..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml b/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml deleted file mode 100644 index 228e19fac..000000000 --- a/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: ccsds - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 42 diff --git a/share/multiom/encodings/complex/CMakeLists.txt b/share/multiom/encodings/complex/CMakeLists.txt deleted file mode 100644 index b074f8849..000000000 --- a/share/multiom/encodings/complex/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/deterministic") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/ensemble") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/reforecast_ensemble") - -add_subdirectory("deterministic") -add_subdirectory("ensemble") -add_subdirectory("reforecast_ensemble") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/deterministic/CMakeLists.txt b/share/multiom/encodings/complex/deterministic/CMakeLists.txt deleted file mode 100644 index d430576a8..000000000 --- a/share/multiom/encodings/complex/deterministic/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/deterministic/ml") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/deterministic/pl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/deterministic/pt") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/deterministic/pv") - -add_subdirectory("ml") -add_subdirectory("pl") -add_subdirectory("pt") -add_subdirectory("pv") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/deterministic/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/deterministic - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/deterministic/ml/CMakeLists.txt b/share/multiom/encodings/complex/deterministic/ml/CMakeLists.txt deleted file mode 100644 index aff1b1c99..000000000 --- a/share/multiom/encodings/complex/deterministic/ml/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/deterministic/ml/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/deterministic/ml - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1.yaml deleted file mode 100644 index d61e8b953..000000000 --- a/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-deterministic-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1001.yaml deleted file mode 100644 index f94df1f85..000000000 --- a/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-deterministic-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1036.yaml deleted file mode 100644 index 6be4d114a..000000000 --- a/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-deterministic-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-15.yaml deleted file mode 100644 index 14633d68c..000000000 --- a/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-deterministic-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-36.yaml deleted file mode 100644 index 8adca69a7..000000000 --- a/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-deterministic-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pl/CMakeLists.txt b/share/multiom/encodings/complex/deterministic/pl/CMakeLists.txt deleted file mode 100644 index 2ead52bb3..000000000 --- a/share/multiom/encodings/complex/deterministic/pl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/deterministic/pl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/deterministic/pl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1.yaml deleted file mode 100644 index b0a479b55..000000000 --- a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1001.yaml deleted file mode 100644 index ccc3b93f4..000000000 --- a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1036.yaml deleted file mode 100644 index 3fa476740..000000000 --- a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-15.yaml deleted file mode 100644 index 777570c37..000000000 --- a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-deterministic-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-36.yaml deleted file mode 100644 index cb1dfabea..000000000 --- a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-deterministic-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1.yaml deleted file mode 100644 index dfd769585..000000000 --- a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1001.yaml deleted file mode 100644 index 31372a393..000000000 --- a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1036.yaml deleted file mode 100644 index 8a512fb34..000000000 --- a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-15.yaml deleted file mode 100644 index a437e966c..000000000 --- a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-36.yaml deleted file mode 100644 index e4ec54113..000000000 --- a/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pt/CMakeLists.txt b/share/multiom/encodings/complex/deterministic/pt/CMakeLists.txt deleted file mode 100644 index cb1c57cf3..000000000 --- a/share/multiom/encodings/complex/deterministic/pt/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/deterministic/pt/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/deterministic/pt - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1.yaml deleted file mode 100644 index 62b01fd53..000000000 --- a/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-deterministic-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1001.yaml deleted file mode 100644 index 387f21cde..000000000 --- a/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-deterministic-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1036.yaml deleted file mode 100644 index 77bb27771..000000000 --- a/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-deterministic-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-15.yaml deleted file mode 100644 index 1984aa506..000000000 --- a/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-deterministic-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-36.yaml deleted file mode 100644 index 02b3ea2e9..000000000 --- a/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-deterministic-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pv/CMakeLists.txt b/share/multiom/encodings/complex/deterministic/pv/CMakeLists.txt deleted file mode 100644 index 852e5a65b..000000000 --- a/share/multiom/encodings/complex/deterministic/pv/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/deterministic/pv/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/deterministic/pv - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1.yaml deleted file mode 100644 index cbfc1b304..000000000 --- a/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1001.yaml deleted file mode 100644 index baabeae1d..000000000 --- a/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1036.yaml deleted file mode 100644 index 249ac18b9..000000000 --- a/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-15.yaml deleted file mode 100644 index 02c7a8d24..000000000 --- a/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-deterministic-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-36.yaml deleted file mode 100644 index 03af3b692..000000000 --- a/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-deterministic-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/CMakeLists.txt b/share/multiom/encodings/complex/ensemble/CMakeLists.txt deleted file mode 100644 index 9fdadde4a..000000000 --- a/share/multiom/encodings/complex/ensemble/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/ensemble/ml") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/ensemble/pl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/ensemble/pt") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/ensemble/pv") - -add_subdirectory("ml") -add_subdirectory("pl") -add_subdirectory("pt") -add_subdirectory("pv") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/ensemble/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/ensemble - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/ensemble/ml/CMakeLists.txt b/share/multiom/encodings/complex/ensemble/ml/CMakeLists.txt deleted file mode 100644 index dfa308920..000000000 --- a/share/multiom/encodings/complex/ensemble/ml/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/ensemble/ml/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/ensemble/ml - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1.yaml deleted file mode 100644 index aa4e319d7..000000000 --- a/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-ensemble-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1001.yaml deleted file mode 100644 index aad4b49b5..000000000 --- a/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-ensemble-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1036.yaml deleted file mode 100644 index acbf1c50c..000000000 --- a/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-ensemble-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-15.yaml deleted file mode 100644 index 0ebf56044..000000000 --- a/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-ensemble-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-36.yaml deleted file mode 100644 index 8e21742b1..000000000 --- a/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-ensemble-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pl/CMakeLists.txt b/share/multiom/encodings/complex/ensemble/pl/CMakeLists.txt deleted file mode 100644 index a80357e67..000000000 --- a/share/multiom/encodings/complex/ensemble/pl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/ensemble/pl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/ensemble/pl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1.yaml deleted file mode 100644 index 9a58a7209..000000000 --- a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1001.yaml deleted file mode 100644 index 03b16edf5..000000000 --- a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1036.yaml deleted file mode 100644 index 5a8e398e2..000000000 --- a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-15.yaml deleted file mode 100644 index 76e5d03a6..000000000 --- a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-ensemble-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-36.yaml deleted file mode 100644 index 7e78a2ab7..000000000 --- a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-ensemble-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1.yaml deleted file mode 100644 index 68df67fd3..000000000 --- a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1001.yaml deleted file mode 100644 index 809321c93..000000000 --- a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1036.yaml deleted file mode 100644 index b4a6fcaab..000000000 --- a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-15.yaml deleted file mode 100644 index ca8554704..000000000 --- a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-36.yaml deleted file mode 100644 index 6dbb997c1..000000000 --- a/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pt/CMakeLists.txt b/share/multiom/encodings/complex/ensemble/pt/CMakeLists.txt deleted file mode 100644 index 3083717e4..000000000 --- a/share/multiom/encodings/complex/ensemble/pt/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/ensemble/pt/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/ensemble/pt - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1.yaml deleted file mode 100644 index 371d2899b..000000000 --- a/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-ensemble-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1001.yaml deleted file mode 100644 index 18c180de6..000000000 --- a/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-ensemble-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1036.yaml deleted file mode 100644 index c32e43ff3..000000000 --- a/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-ensemble-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-15.yaml deleted file mode 100644 index 2e92eb782..000000000 --- a/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-ensemble-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-36.yaml deleted file mode 100644 index 158ad8f71..000000000 --- a/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-ensemble-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pv/CMakeLists.txt b/share/multiom/encodings/complex/ensemble/pv/CMakeLists.txt deleted file mode 100644 index 7905df561..000000000 --- a/share/multiom/encodings/complex/ensemble/pv/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/ensemble/pv/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/ensemble/pv - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1.yaml deleted file mode 100644 index 0c1f85050..000000000 --- a/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1001.yaml deleted file mode 100644 index bf39aa02a..000000000 --- a/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1036.yaml deleted file mode 100644 index 845371905..000000000 --- a/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-15.yaml deleted file mode 100644 index 820e14167..000000000 --- a/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-ensemble-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-36.yaml deleted file mode 100644 index 972f7aa39..000000000 --- a/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-ensemble-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/CMakeLists.txt b/share/multiom/encodings/complex/reforecast_ensemble/CMakeLists.txt deleted file mode 100644 index 03de08fa5..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv") - -add_subdirectory("ml") -add_subdirectory("pl") -add_subdirectory("pt") -add_subdirectory("pv") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/reforecast_ensemble/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/reforecast_ensemble - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/reforecast_ensemble/ml/CMakeLists.txt b/share/multiom/encodings/complex/reforecast_ensemble/ml/CMakeLists.txt deleted file mode 100644 index ebecfcebc..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/ml/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/reforecast_ensemble/ml - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1.yaml deleted file mode 100644 index 3b059aac3..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml deleted file mode 100644 index acefecbf3..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml deleted file mode 100644 index 76364a339..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-15.yaml deleted file mode 100644 index 6ca6be5f9..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-36.yaml deleted file mode 100644 index 4dee97fca..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - 77 - - 129 - - "130:132" - - 135 - - 138 - - 152 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pl/CMakeLists.txt b/share/multiom/encodings/complex/reforecast_ensemble/pl/CMakeLists.txt deleted file mode 100644 index 47269bad5..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/reforecast_ensemble/pl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml deleted file mode 100644 index 3c30e30f5..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml deleted file mode 100644 index 938993f58..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml deleted file mode 100644 index b401fddc5..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml deleted file mode 100644 index c9d60fe41..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml deleted file mode 100644 index d56585e9c..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml deleted file mode 100644 index 505a0b4aa..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml deleted file mode 100644 index c792f9e5d..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml deleted file mode 100644 index a5430ac92..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml deleted file mode 100644 index db8582cbc..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml deleted file mode 100644 index 9119fe217..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 1 - - 2 - - "129:135" - - 138 - - 152 - - 155 - - 157 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pt/CMakeLists.txt b/share/multiom/encodings/complex/reforecast_ensemble/pt/CMakeLists.txt deleted file mode 100644 index c2dcda53d..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pt/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/reforecast_ensemble/pt - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1.yaml deleted file mode 100644 index 648e6c5fc..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml deleted file mode 100644 index 6a76e2098..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml deleted file mode 100644 index 0d150c548..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-15.yaml deleted file mode 100644 index 2d787ee09..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-reforecast-ensemble-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-36.yaml deleted file mode 100644 index 2bd396b2b..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-complex-reforecast-ensemble-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 131 - - 132 - - 133 - - 138 - - 155 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pv/CMakeLists.txt b/share/multiom/encodings/complex/reforecast_ensemble/pv/CMakeLists.txt deleted file mode 100644 index 192492f3e..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pv/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/complex/reforecast_ensemble/pv - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1.yaml deleted file mode 100644 index b1f114ace..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml deleted file mode 100644 index e4d043b9d..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml deleted file mode 100644 index 1ac98c0cc..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-15.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-15.yaml deleted file mode 100644 index 32cfa92fe..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-36.yaml b/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-36.yaml deleted file mode 100644 index 0becc22ee..000000000 --- a/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: spherical-harmonics - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - type: packing - operation: match - value: complex - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 50 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 51 diff --git a/share/multiom/encodings/encoding-rules-ccsds-deterministic.yaml b/share/multiom/encodings/encoding-rules-ccsds-deterministic.yaml deleted file mode 100644 index c764d53b6..000000000 --- a/share/multiom/encodings/encoding-rules-ccsds-deterministic.yaml +++ /dev/null @@ -1,411 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1036.yaml' diff --git a/share/multiom/encodings/encoding-rules-ccsds-ensemble.yaml b/share/multiom/encodings/encoding-rules-ccsds-ensemble.yaml deleted file mode 100644 index f2f1689b6..000000000 --- a/share/multiom/encodings/encoding-rules-ccsds-ensemble.yaml +++ /dev/null @@ -1,411 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1036.yaml' diff --git a/share/multiom/encodings/encoding-rules-ccsds-largeEnsemble.yaml b/share/multiom/encodings/encoding-rules-ccsds-largeEnsemble.yaml deleted file mode 100644 index e139eae52..000000000 --- a/share/multiom/encodings/encoding-rules-ccsds-largeEnsemble.yaml +++ /dev/null @@ -1,6 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1036.yaml' diff --git a/share/multiom/encodings/encoding-rules-ccsds-reforecast_ensemble.yaml b/share/multiom/encodings/encoding-rules-ccsds-reforecast_ensemble.yaml deleted file mode 100644 index 83d755635..000000000 --- a/share/multiom/encodings/encoding-rules-ccsds-reforecast_ensemble.yaml +++ /dev/null @@ -1,411 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' diff --git a/share/multiom/encodings/encoding-rules-complex-deterministic.yaml b/share/multiom/encodings/encoding-rules-complex-deterministic.yaml deleted file mode 100644 index da60fcd5d..000000000 --- a/share/multiom/encodings/encoding-rules-complex-deterministic.yaml +++ /dev/null @@ -1,26 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1036.yaml' diff --git a/share/multiom/encodings/encoding-rules-complex-ensemble.yaml b/share/multiom/encodings/encoding-rules-complex-ensemble.yaml deleted file mode 100644 index f2cd1e80d..000000000 --- a/share/multiom/encodings/encoding-rules-complex-ensemble.yaml +++ /dev/null @@ -1,26 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1036.yaml' diff --git a/share/multiom/encodings/encoding-rules-complex-reforecast_ensemble.yaml b/share/multiom/encodings/encoding-rules-complex-reforecast_ensemble.yaml deleted file mode 100644 index 15b0947e8..000000000 --- a/share/multiom/encodings/encoding-rules-complex-reforecast_ensemble.yaml +++ /dev/null @@ -1,26 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' diff --git a/share/multiom/encodings/encoding-rules-nested.yaml b/share/multiom/encodings/encoding-rules-nested.yaml deleted file mode 100644 index b61021961..000000000 --- a/share/multiom/encodings/encoding-rules-nested.yaml +++ /dev/null @@ -1,3716 +0,0 @@ -nested-rules: - key: class - operations: - - operation: ignore - value: d1 - nested-rules: - key: number - operations: - - operation: has - nested-rules: - key: hdate - operations: - - operation: has - nested-rules: - key: anoffset - operations: - - operation: has - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-36.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-36.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-36.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - operation: lacks - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-15.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-15.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-15.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - operation: lacks - nested-rules: - key: anoffset - operations: - - operation: has - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-36.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-36.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-36.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-36.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-36.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-36.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-36.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-36.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-36.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-36.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-36.yaml' - - operation: lacks - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-15.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-15.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-15.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-15.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-15.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-15.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-15.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-15.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-15.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-15.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-15.yaml' - - operation: lacks - nested-rules: - key: hdate - operations: - - operation: has - nested-rules: - key: anoffset - operations: - - operation: has - nested-rules: - key: repres - operations: [] - - operation: lacks - nested-rules: - key: repres - operations: [] - - operation: lacks - nested-rules: - key: anoffset - operations: - - operation: has - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-36.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-36.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-36.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-36.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-36.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-36.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-36.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-36.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-36.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-36.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-36.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-36.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-36.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-36.yaml' - - operation: lacks - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-15.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-15.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-15.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-15.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-15.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-15.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-15.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-15.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-15.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-15.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-15.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-15.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-15.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-15.yaml' - - operation: match - value: d1 - nested-rules: - key: number - operations: - - operation: has - nested-rules: - key: hdate - operations: - - operation: has - nested-rules: - key: anoffset - operations: - - operation: has - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1036.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1036.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - operation: lacks - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1001.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1001.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - operation: lacks - nested-rules: - key: anoffset - operations: - - operation: has - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1036.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1036.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1036.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1036.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1036.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1036.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1036.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1036.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1036.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1036.yaml' - - operation: lacks - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1001.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1001.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1001.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1001.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1001.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1001.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1001.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1001.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1001.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1001.yaml' - - operation: lacks - nested-rules: - key: hdate - operations: - - operation: has - nested-rules: - key: anoffset - operations: - - operation: has - nested-rules: - key: repres - operations: [] - - operation: lacks - nested-rules: - key: repres - operations: [] - - operation: lacks - nested-rules: - key: anoffset - operations: - - operation: has - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1036.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1036.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1036.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1036.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1036.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1036.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1036.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1036.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1036.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1036.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1036.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1036.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1036.yaml' - - operation: lacks - nested-rules: - key: repres - operations: - - operation: match - value: gaussian-grid - nested-rules: - key: packing - operations: - - operation: match - value: simple - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1001.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1001.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1001.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1001.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1001.yaml' - - operation: match - value: ccsds - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1001.yaml' - - operation: match - value: hl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml' - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml' - - operation: match - value: sol - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1001.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1001.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - operation: lacks - nested-rules: - key: levtype - operations: - - operation: match - value: sfc - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - operation: lacks - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1001.yaml' - - operation: match - value: spherical-harmonics - nested-rules: - key: packing - operations: - - operation: match - value: complex - nested-rules: - key: levtype - operations: - - operation: match - value: ml - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1001.yaml' - - operation: match - value: pl - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1001.yaml' - - operation: match - value: pv - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1001.yaml' - - operation: match - value: pt - encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1001.yaml' diff --git a/share/multiom/encodings/encoding-rules-simple-deterministic.yaml b/share/multiom/encodings/encoding-rules-simple-deterministic.yaml deleted file mode 100644 index 3a6048f4b..000000000 --- a/share/multiom/encodings/encoding-rules-simple-deterministic.yaml +++ /dev/null @@ -1,411 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1036.yaml' diff --git a/share/multiom/encodings/encoding-rules-simple-ensemble.yaml b/share/multiom/encodings/encoding-rules-simple-ensemble.yaml deleted file mode 100644 index ea93d3cfd..000000000 --- a/share/multiom/encodings/encoding-rules-simple-ensemble.yaml +++ /dev/null @@ -1,411 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1036.yaml' diff --git a/share/multiom/encodings/encoding-rules-simple-largeEnsemble.yaml b/share/multiom/encodings/encoding-rules-simple-largeEnsemble.yaml deleted file mode 100644 index a0c59c7b7..000000000 --- a/share/multiom/encodings/encoding-rules-simple-largeEnsemble.yaml +++ /dev/null @@ -1,6 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1036.yaml' diff --git a/share/multiom/encodings/encoding-rules-simple-reforecast_ensemble.yaml b/share/multiom/encodings/encoding-rules-simple-reforecast_ensemble.yaml deleted file mode 100644 index 07281d872..000000000 --- a/share/multiom/encodings/encoding-rules-simple-reforecast_ensemble.yaml +++ /dev/null @@ -1,411 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1036.yaml' diff --git a/share/multiom/encodings/encoding-rules.yaml b/share/multiom/encodings/encoding-rules.yaml deleted file mode 100644 index b22bd5da1..000000000 --- a/share/multiom/encodings/encoding-rules.yaml +++ /dev/null @@ -1,2546 +0,0 @@ -encoding-rules: - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireLake-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-meanSea-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-tropopause-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-isothermal-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-average-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-max-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-min-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pt/rule-theta-gg-deterministic-std-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireLake-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-meanSea-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-tropopause-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-isothermal-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-average-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-max-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-min-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pt/rule-theta-gg-ensemble-std-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramIdECMF-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-ccsds-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/ml/rule-hybrid-complex-deterministic-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInhPa-complex-deterministic-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pl/rule-isobaricInPa-complex-deterministic-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pv/rule-potentialVorticity-complex-deterministic-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/deterministic/pt/rule-theta-complex-deterministic-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/ml/rule-hybrid-complex-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInhPa-complex-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pl/rule-isobaricInPa-complex-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pv/rule-potentialVorticity-complex-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/ensemble/pt/rule-theta-complex-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/ml/rule-hybrid-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInhPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pl/rule-isobaricInPa-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pv/rule-potentialVorticity-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/complex/reforecast_ensemble/pt/rule-theta-complex-reforecast-ensemble-instant-complex-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-15.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-36.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1001.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1036.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/encodings/ccsds/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-ccsds-paramId-1036.yaml' diff --git a/share/multiom/encodings/simple/CMakeLists.txt b/share/multiom/encodings/simple/CMakeLists.txt deleted file mode 100644 index 7e7ef55d5..000000000 --- a/share/multiom/encodings/simple/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/largeEnsemble") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble") - -add_subdirectory("deterministic") -add_subdirectory("ensemble") -add_subdirectory("largeEnsemble") -add_subdirectory("reforecast_ensemble") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/deterministic/CMakeLists.txt b/share/multiom/encodings/simple/deterministic/CMakeLists.txt deleted file mode 100644 index 195881512..000000000 --- a/share/multiom/encodings/simple/deterministic/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/hl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/ml") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/pl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/pt") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/pv") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/sfc") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/sol") - -add_subdirectory("hl") -add_subdirectory("ml") -add_subdirectory("pl") -add_subdirectory("pt") -add_subdirectory("pv") -add_subdirectory("sfc") -add_subdirectory("sol") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/deterministic - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/deterministic/hl/CMakeLists.txt b/share/multiom/encodings/simple/deterministic/hl/CMakeLists.txt deleted file mode 100644 index f9ecab246..000000000 --- a/share/multiom/encodings/simple/deterministic/hl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/hl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/deterministic/hl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 072bb12e5..000000000 --- a/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index df215ac75..000000000 --- a/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index a4e7989c7..000000000 --- a/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index ff59deaa6..000000000 --- a/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index a4fe9a2e2..000000000 --- a/share/multiom/encodings/simple/deterministic/hl/rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-avg-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index b449aeb90..000000000 --- a/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 7220b6d33..000000000 --- a/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 64f43e392..000000000 --- a/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index d6c7724d0..000000000 --- a/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index a724b6e1e..000000000 --- a/share/multiom/encodings/simple/deterministic/hl/rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/ml/CMakeLists.txt b/share/multiom/encodings/simple/deterministic/ml/CMakeLists.txt deleted file mode 100644 index dad71e1cf..000000000 --- a/share/multiom/encodings/simple/deterministic/ml/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/ml/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/deterministic/ml - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1.yaml deleted file mode 100644 index 84b4d236f..000000000 --- a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1001.yaml deleted file mode 100644 index 9811a8bc9..000000000 --- a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1036.yaml deleted file mode 100644 index 87bf23bd5..000000000 --- a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-15.yaml deleted file mode 100644 index 4381d6c25..000000000 --- a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-36.yaml deleted file mode 100644 index 4e98e3dd9..000000000 --- a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-accum-since-last-pp-hybrid-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 299f277ef..000000000 --- a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 6cf23690f..000000000 --- a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 6679d5292..000000000 --- a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index da4e0ce29..000000000 --- a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 66f881d1a..000000000 --- a/share/multiom/encodings/simple/deterministic/ml/rule-hybrid-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/CMakeLists.txt b/share/multiom/encodings/simple/deterministic/pl/CMakeLists.txt deleted file mode 100644 index 86f1ec433..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/pl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/deterministic/pl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index a9addd09b..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 2419ed6db..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 76a750b0c..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 871c55167..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 975703fd4..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-avg-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index e6e81deab..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 8394084bd..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 0241452e3..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 246de4cca..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 4975f97a5..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInPa-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 3c405c12d..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 3be84ad0c..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index e7c9d3398..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 5617cdf92..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 84a5fa1e1..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-avg-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index e448afd9d..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 569de8710..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index aa4d81737..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index f96b44aed..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 7f8fa2425..000000000 --- a/share/multiom/encodings/simple/deterministic/pl/rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/CMakeLists.txt b/share/multiom/encodings/simple/deterministic/pt/CMakeLists.txt deleted file mode 100644 index 75adfc763..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/pt/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/deterministic/pt - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1.yaml deleted file mode 100644 index 4db658086..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-average-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1001.yaml deleted file mode 100644 index fff53d7b2..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-average-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1036.yaml deleted file mode 100644 index 96b34894b..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-average-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-15.yaml deleted file mode 100644 index c9609a49f..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-average-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-36.yaml deleted file mode 100644 index ac4f5de5f..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-average-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-average-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 77b24fa33..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 47714a64c..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index e5a3fc89a..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 0703b7427..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index d8eba5287..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1.yaml deleted file mode 100644 index 9a86a8047..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-max-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1001.yaml deleted file mode 100644 index 23f7cf51c..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-max-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1036.yaml deleted file mode 100644 index 67c01a09d..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-max-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-15.yaml deleted file mode 100644 index e116edc96..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-max-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-36.yaml deleted file mode 100644 index bab10b8ca..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-max-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-max-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1.yaml deleted file mode 100644 index 9cef319f8..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-min-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1001.yaml deleted file mode 100644 index c4a9d6642..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-min-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1036.yaml deleted file mode 100644 index b2e84ef6d..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-min-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-15.yaml deleted file mode 100644 index d730df943..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-min-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-36.yaml deleted file mode 100644 index e2a16e753..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-min-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-min-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1.yaml deleted file mode 100644 index 21771b7d4..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-std-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1001.yaml deleted file mode 100644 index f96239a6e..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-std-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1036.yaml deleted file mode 100644 index 1759552c5..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-std-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-15.yaml deleted file mode 100644 index 65b85d61d..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-std-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-36.yaml deleted file mode 100644 index 9aa90fb75..000000000 --- a/share/multiom/encodings/simple/deterministic/pt/rule-theta-gg-deterministic-std-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-deterministic-std-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pv/CMakeLists.txt b/share/multiom/encodings/simple/deterministic/pv/CMakeLists.txt deleted file mode 100644 index 97130d2b8..000000000 --- a/share/multiom/encodings/simple/deterministic/pv/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/pv/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/deterministic/pv - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 748e86b47..000000000 --- a/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 31e92eef0..000000000 --- a/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 308ca32b6..000000000 --- a/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 75e5b736b..000000000 --- a/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index b2f050840..000000000 --- a/share/multiom/encodings/simple/deterministic/pv/rule-potentialVorticity-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/CMakeLists.txt b/share/multiom/encodings/simple/deterministic/sfc/CMakeLists.txt deleted file mode 100644 index a869eafae..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/sfc/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/deterministic/sfc - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 339fe405f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 651899d91..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index dd2d17a00..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index ac85229a2..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index ba3e255a0..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-cloudBase-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index c3a23a69f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 32 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 217241a67..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 32 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 8ff0ce9c2..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 32 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 70451e1b7..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 32 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 58e856749..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-satellite-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 32 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 4e3890b01..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 99 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index cf3965be1..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 99 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 9ba55fa46..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 99 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 22467930b..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 99 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 6426cae15..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-default-gg-wave_spec-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 99 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index fef61db25..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index c8a77375d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 0b0a89893..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 841ba5ce4..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index c5515be8e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml deleted file mode 100644 index 441427838..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml deleted file mode 100644 index 508cc3503..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml deleted file mode 100644 index 1a570725b..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml deleted file mode 100644 index 806a624aa..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml deleted file mode 100644 index 339b02839..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-avg-since-last-pp-entireAtmosphere-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index e7f3e9f0a..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index b23e653c0..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 5493e6f41..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 4f871381d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index c793d0742..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 31285d89e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 48f80d3c7..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index e052f8af7..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 692bb6f28..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 327a4be76..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-entireLake-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index ac4b8484f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index b17a0acfe..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index f9187d334..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 9a3876089..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 8149f365d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGround-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml deleted file mode 100644 index 25ba4d9e1..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml deleted file mode 100644 index 9f841cb17..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml deleted file mode 100644 index f84d47232..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml deleted file mode 100644 index 30e94a978..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml deleted file mode 100644 index d7563bc17..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 2cb0eebb7..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 28a399307..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 8f4c25aaa..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index f90cc9b10..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 647140693..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml deleted file mode 100644 index dc85184b6..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index 6a616cb63..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index 101346234..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml deleted file mode 100644 index c17dd80ed..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml deleted file mode 100644 index 842a36ed1..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1.yaml deleted file mode 100644 index 5e1fbb6fa..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index 1681c10ff..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index bb4bdd368..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-15.yaml deleted file mode 100644 index dc9256fd3..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-36.yaml deleted file mode 100644 index 6ba503021..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-over-last-6h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 5e12d2a8d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 33647713a..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index cec91a0e4..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 92cc7b527..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 309e7eb38..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-deterministic-max-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml deleted file mode 100644 index ab9432aca..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml deleted file mode 100644 index f90a47c9c..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml deleted file mode 100644 index a7bc42cd6..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml deleted file mode 100644 index ecbb2617f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml deleted file mode 100644 index de17db21a..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 2ab667ac7..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index a5aacf91d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 611aa8e4c..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 81e609db8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 77d495273..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index 1e66e9f77..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index fdbd46d9d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 9d80863a4..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 76e63cc7c..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index bfa62df76..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index f3a69a8fe..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 21ad9caa6..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 2015e0748..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 5d40b4d33..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 7161c9ea7..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-max-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index a3a9afe8d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index b4f6a112f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 4c44fd018..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 11d89b594..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index d6220c635..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 475b94e48..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 9c346cd11..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index af3d561b9..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 84ec62dcf..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 5013d888e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-deterministic-min-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 2d3b62e79..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index aa50911da..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index ffc51b9fa..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index a9240b393..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 6caa798f7..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index dff8d9138..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index cf6ad08ed..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 75f14f9e8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 1bff3d8b7..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 35033bb12..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-highCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 5e1429346..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index d66d9fd29..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 881a4596d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 9d1ff337e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 193764e75..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index ad44c5716..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 753422b53..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 4bfcc4b19..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 1a6295d5e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 46080d975..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index c374a26f3..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 8ecee78d5..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index b32579615..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 7935c2d4b..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 618e4ee44..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-isothermal-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index cf86fc1fb..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index d3623bae1..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 5b89815b7..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index a8ec51151..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 51adeb99a..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-lakeBottom-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index e4f18a200..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 5c6671678..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 2ea07b970..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index bcf4b5b8e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 917f9f6e5..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1.yaml deleted file mode 100644 index 41f7fc1d5..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1001.yaml deleted file mode 100644 index 920e8deac..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1036.yaml deleted file mode 100644 index cbd36d8a0..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-15.yaml deleted file mode 100644 index 5042b8437..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-36.yaml deleted file mode 100644 index 5c582d2e6..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-avg-since-last-pp-meanSea-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 35e80d8df..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index e38c9f6ca..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 6895f935f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index c99f22a14..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index b9beea971..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-meanSea-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index d65b7a68f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index fa58cc40a..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 506618550..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index ab5ba6683..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 7c8471912..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index dc4a44938..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 027367400..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index a5d1bbfd8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 7a215ad10..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 6a8f550b3..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index f9b9e8feb..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index d1d4e8c51..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 5ba54318a..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 1cbbd561e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 0ed29b989..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mixingLayer-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 613d607c0..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index c979947f4..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index dfad5ee44..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index db333abb5..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index bdec7b665..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1.yaml deleted file mode 100644 index 0fc36389f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml deleted file mode 100644 index 2602701cb..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml deleted file mode 100644 index 47e5f9dbf..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-15.yaml deleted file mode 100644 index 6704d98c9..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-36.yaml deleted file mode 100644 index 7f064a08d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-accum-since-last-pp-nominalTop-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 251180b8e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 49fcea9fa..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 3b3d447c5..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index aa414063d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index c9303c6af..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-average-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1.yaml deleted file mode 100644 index 2f26033f4..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml deleted file mode 100644 index 3ae4b30af..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml deleted file mode 100644 index 2800941a2..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-15.yaml deleted file mode 100644 index 38fc48bd8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-36.yaml deleted file mode 100644 index a1e2c88d3..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-deterministic-avg-since-last-pp-nominalTop-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml deleted file mode 100644 index 9baad488a..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 42 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml deleted file mode 100644 index 8b9c89f6e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 42 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml deleted file mode 100644 index 63106b04d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 42 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml deleted file mode 100644 index aab108471..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 42 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml deleted file mode 100644 index 7a48b1147..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-accum-since-last-pp-surface-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 42 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 38d61ab8e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 40 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 243ebb532..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 40 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index c342e780c..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 40 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 4bd5112e2..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 40 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 6e831b9e6..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-chem-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 40 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml deleted file mode 100644 index bc72f3503..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml deleted file mode 100644 index 590c2000f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1001.yaml +++ /dev/null @@ -1,107 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml deleted file mode 100644 index 2a324c81e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1036.yaml +++ /dev/null @@ -1,107 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml deleted file mode 100644 index cf1d23a91..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-15.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml deleted file mode 100644 index f787ab516..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-36.yaml +++ /dev/null @@ -1,107 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-accum-since-last-pp-surface-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1.yaml deleted file mode 100644 index 4e7457f96..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1001.yaml deleted file mode 100644 index 8547a94cb..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1036.yaml deleted file mode 100644 index be98966d8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-15.yaml deleted file mode 100644 index 798d1c6d9..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-36.yaml deleted file mode 100644 index 7b8be3001..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-1h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 45984cb21..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index 035e43ac5..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index c83a3e40b..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index d6cf2c777..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index 5ceb4d028..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index 50ec6fbcd..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 3532acbad..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 71f3b256b..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index d11d73b3d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 17a643251..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 3cea681fc..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 6dcd4433e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 9174100a1..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 9e8a2e921..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 831147882..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-average-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1.yaml deleted file mode 100644 index 8d9798f84..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1001.yaml deleted file mode 100644 index 93550929e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1001.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1036.yaml deleted file mode 100644 index 8e4c9f8d9..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1036.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-15.yaml deleted file mode 100644 index eaf920a90..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-15.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-36.yaml deleted file mode 100644 index 5e34e8b65..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-36.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-avg-since-last-pp-surface-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 9fe35cf8a..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 6257a16e8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,126 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index ca0245f86..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,126 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 2d22bafee..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 3ad6149cf..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,126 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 555bbf5e1..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index d60ba918d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index 3c5a74625..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index 8a52856e2..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index d13b8226b..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml deleted file mode 100644 index c6f8fcc56..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index 6f892a19d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index 03ebe24a8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml deleted file mode 100644 index 6a2579483..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml deleted file mode 100644 index 79d7ddae8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-3h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index c7781a293..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index e4910d5ea..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index b255905f6..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 57423d993..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 38a91640a..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index a24df99d0..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 6a1577cb2..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 0418c346e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 0b6e886bb..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 0fef2fb23..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-max-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 64cd8f9d8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index 8459e881b..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index 3f04fd836..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index f6d2ab5f9..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index bf0e6505f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1.yaml deleted file mode 100644 index d73a3057d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index 00317acae..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index d572cde5f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-15.yaml deleted file mode 100644 index 0ace66608..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-36.yaml deleted file mode 100644 index 9f8dafa67..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-3h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index 39fd93888..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index fea235e76..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 9e3b4ed2c..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index bfd525ab1..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 75f382f25..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 64e2acfc0..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 77422091a..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 545f72cad..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 5aaeab243..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 79dbfc81e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-min-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1.yaml deleted file mode 100644 index d63f35b5f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1001.yaml deleted file mode 100644 index a5376d411..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1036.yaml deleted file mode 100644 index d1b2b5cae..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-15.yaml deleted file mode 100644 index 94a390eeb..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-36.yaml deleted file mode 100644 index 402b76cbe..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-1h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 641b01399..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index 0e8c592d8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index 06e7a6b9d..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index 230afe762..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index 8d5602095..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index daaa1d6e8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 5d7688100..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 2eb484de1..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index f72158d75..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index bbde66fd5..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index bdeb4bb36..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 5a08d2527..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index f7153456f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index cab4cea68..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 56ef495e1..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-mode-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1.yaml deleted file mode 100644 index 29327c98f..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1001.yaml deleted file mode 100644 index 56a560dc8..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1036.yaml deleted file mode 100644 index dbcae6803..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-15.yaml deleted file mode 100644 index 20ee716ac..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-36.yaml deleted file mode 100644 index d3ddce30c..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-1h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 1c2b6e4b9..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index ec590e460..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index 04c199d96..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index cbdd7cff1..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index c943b8088..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index b8bce1080..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 1a21e9205..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index cf514fa23..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index b472e88bc..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 58fc3edbc..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index cb967eb31..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index b7844d262..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 2c8b1f063..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index d4c35d103..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 2673d0979..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-deterministic-severity-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 08a406e71..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index abe5d9b0e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index cf769c052..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 9fe4e4ddc..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 56c9b0980..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-tropopause-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,63 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 0ef59c737..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index e5ba0bab0..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index d63742644..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 582e730ba..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index ca46f607c..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_int-surface-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index bfbd242bc..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 103 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index a9da5955b..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 103 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index d31d3348e..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 103 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 407b63dcd..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 103 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 3b0657fb6..000000000 --- a/share/multiom/encodings/simple/deterministic/sfc/rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 103 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/CMakeLists.txt b/share/multiom/encodings/simple/deterministic/sol/CMakeLists.txt deleted file mode 100644 index 3437ea44e..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/deterministic/sol/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/deterministic/sol - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index f05582d49..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index e2a00d893..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index 8179586f9..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 7a4cd4b52..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 40cc88c34..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-seaIceLayer-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1.yaml deleted file mode 100644 index 2d122bc6c..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1001.yaml deleted file mode 100644 index 7d3adcec1..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1036.yaml deleted file mode 100644 index 80ebfb2ea..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-15.yaml deleted file mode 100644 index 0cfea5707..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-36.yaml deleted file mode 100644 index 73ab1d4ac..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-avg-since-last-pp-snow-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index 7a6d603e1..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 92155b641..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index f771e1485..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 4e40d52e9..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 95ffe7ffc..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-snowLayer-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1.yaml deleted file mode 100644 index f63a52ee3..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml deleted file mode 100644 index adfb7cdec..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml deleted file mode 100644 index de8867d7d..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-15.yaml deleted file mode 100644 index 5d6707a38..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-15.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-36.yaml deleted file mode 100644 index 8e9584c9c..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-36.yaml +++ /dev/null @@ -1,64 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-avg-since-last-pp-soilLayer-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 8 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1.yaml deleted file mode 100644 index ee9c49e6a..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1001.yaml deleted file mode 100644 index 92a690002..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1036.yaml deleted file mode 100644 index f410c4f95..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-15.yaml deleted file mode 100644 index 044e88c14..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-36.yaml deleted file mode 100644 index 264330561..000000000 --- a/share/multiom/encodings/simple/deterministic/sol/rule-soilLayer-gg-deterministic-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-deterministic-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: lacks - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 0 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/CMakeLists.txt b/share/multiom/encodings/simple/ensemble/CMakeLists.txt deleted file mode 100644 index 0ae136727..000000000 --- a/share/multiom/encodings/simple/ensemble/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/hl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/ml") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/pl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/pt") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/pv") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/sfc") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/sol") - -add_subdirectory("hl") -add_subdirectory("ml") -add_subdirectory("pl") -add_subdirectory("pt") -add_subdirectory("pv") -add_subdirectory("sfc") -add_subdirectory("sol") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/ensemble - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/ensemble/hl/CMakeLists.txt b/share/multiom/encodings/simple/ensemble/hl/CMakeLists.txt deleted file mode 100644 index 3810f6108..000000000 --- a/share/multiom/encodings/simple/ensemble/hl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/hl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/ensemble/hl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 8796d8483..000000000 --- a/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 2accf287e..000000000 --- a/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 669b43c16..000000000 --- a/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 3b884a6ae..000000000 --- a/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index b1ab0be38..000000000 --- a/share/multiom/encodings/simple/ensemble/hl/rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-avg-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 2c10ba10d..000000000 --- a/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 5b58eab80..000000000 --- a/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 31dd9821b..000000000 --- a/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index a55470acc..000000000 --- a/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 0f63308d1..000000000 --- a/share/multiom/encodings/simple/ensemble/hl/rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/ml/CMakeLists.txt b/share/multiom/encodings/simple/ensemble/ml/CMakeLists.txt deleted file mode 100644 index 2f28931f2..000000000 --- a/share/multiom/encodings/simple/ensemble/ml/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/ml/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/ensemble/ml - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml deleted file mode 100644 index a09af7465..000000000 --- a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml deleted file mode 100644 index 88fb7f7cd..000000000 --- a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml deleted file mode 100644 index d63f95c30..000000000 --- a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml deleted file mode 100644 index 1f7124280..000000000 --- a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml deleted file mode 100644 index 8ec7e927f..000000000 --- a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-accum-since-last-pp-hybrid-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 7e6a9db98..000000000 --- a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 039248991..000000000 --- a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 676496fcf..000000000 --- a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 6bf7aabd1..000000000 --- a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 193e5fe10..000000000 --- a/share/multiom/encodings/simple/ensemble/ml/rule-hybrid-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/CMakeLists.txt b/share/multiom/encodings/simple/ensemble/pl/CMakeLists.txt deleted file mode 100644 index 998bf5870..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/pl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/ensemble/pl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 35219e4b8..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index fa47a67a8..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index ada27001c..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index cf88e8dc4..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index f9f4afe6f..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-avg-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index ca49b3f39..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index bf84ad33c..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index a2da73afe..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 79080666d..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 8afff4018..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInPa-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index ecf808da0..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 802494ed3..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 7190e5034..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index e981754c9..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 21502539f..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-avg-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index c50902a0b..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index c02e8925b..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index fbd1aecb9..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index ec0565461..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 185287259..000000000 --- a/share/multiom/encodings/simple/ensemble/pl/rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/CMakeLists.txt b/share/multiom/encodings/simple/ensemble/pt/CMakeLists.txt deleted file mode 100644 index 5d5a78f94..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/pt/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/ensemble/pt - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1.yaml deleted file mode 100644 index 264f65582..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-average-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1001.yaml deleted file mode 100644 index 90632ed4d..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-average-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1036.yaml deleted file mode 100644 index d7ac07e73..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-average-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-15.yaml deleted file mode 100644 index 34d4017e4..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-average-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-36.yaml deleted file mode 100644 index 2bba2b23e..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-average-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-average-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 120461748..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 7877914e2..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 7cea3e70b..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 40afdb23d..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index ebb802080..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1.yaml deleted file mode 100644 index eaf5a9421..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-max-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1001.yaml deleted file mode 100644 index 7c67fdbac..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-max-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1036.yaml deleted file mode 100644 index 17c299d47..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-max-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-15.yaml deleted file mode 100644 index b9a01ed13..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-max-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-36.yaml deleted file mode 100644 index f2938d3c5..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-max-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-max-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1.yaml deleted file mode 100644 index ef789719c..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-min-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1001.yaml deleted file mode 100644 index 4512a4b94..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-min-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1036.yaml deleted file mode 100644 index ec39a69f8..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-min-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-15.yaml deleted file mode 100644 index dd2852b7b..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-min-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-36.yaml deleted file mode 100644 index b5a01f467..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-min-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-min-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1.yaml deleted file mode 100644 index 97e2ed96c..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-std-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1001.yaml deleted file mode 100644 index 02f3781f2..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-std-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1036.yaml deleted file mode 100644 index 6388225f3..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-std-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-15.yaml deleted file mode 100644 index ce82f0699..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-std-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-36.yaml deleted file mode 100644 index 66523849c..000000000 --- a/share/multiom/encodings/simple/ensemble/pt/rule-theta-gg-ensemble-std-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-ensemble-std-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pv/CMakeLists.txt b/share/multiom/encodings/simple/ensemble/pv/CMakeLists.txt deleted file mode 100644 index e220592df..000000000 --- a/share/multiom/encodings/simple/ensemble/pv/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/pv/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/ensemble/pv - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 430ae0c72..000000000 --- a/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index a0844e9c2..000000000 --- a/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 3bf2411b8..000000000 --- a/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 408a9d4de..000000000 --- a/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index ac0e4003b..000000000 --- a/share/multiom/encodings/simple/ensemble/pv/rule-potentialVorticity-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/CMakeLists.txt b/share/multiom/encodings/simple/ensemble/sfc/CMakeLists.txt deleted file mode 100644 index 982e71340..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/sfc/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/ensemble/sfc - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 767cddc2f..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 4b07673d2..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index dca997e60..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index e005c0230..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index fb5a5bc7d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-cloudBase-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 39f584d78..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 33 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 50271771c..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 33 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 55ff763c5..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 33 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index ed709cde7..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 33 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index f618106ce..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-satellite-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 33 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index acb17ffdc..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 100 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index e78415fdd..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 100 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 74519f237..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 100 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 566424f37..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 100 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 33df8632b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-default-gg-wave_spec-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 100 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 1cdc0eea3..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index e773b6f71..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 5c9d3c44a..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 34694686b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 96e08837e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml deleted file mode 100644 index cceb90ad6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml deleted file mode 100644 index bcc00b18a..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml deleted file mode 100644 index 6bcc9e6d0..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml deleted file mode 100644 index b525bc2eb..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml deleted file mode 100644 index 5b27f9009..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index a0fc036be..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,80 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 794e7eed1..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 34b41109e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index f3a3b6585..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,80 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 897e75bdd..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index fd86ed877..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index bc8a7a1e7..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index ee45de9eb..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index f991b8d7b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index db11ff5a8..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-entireLake-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 314951883..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index eb20acb28..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 3b8c8cda6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index bacb713e1..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 4b3c39ca3..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGround-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml deleted file mode 100644 index bde7330e5..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml deleted file mode 100644 index 75ddadbda..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml deleted file mode 100644 index a4bd25b54..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml deleted file mode 100644 index 208ebe00c..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml deleted file mode 100644 index cceaef669..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 940807f04..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 6a6563be6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index b9a71d46b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index df7258c3d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index d85442298..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml deleted file mode 100644 index 3b12d1810..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index 7b75411f3..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index 46af5ef85..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml deleted file mode 100644 index 6a7cdcfc5..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml deleted file mode 100644 index 4f8c703aa..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml deleted file mode 100644 index 534c71839..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index dbf43f5a6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index 6d2292253..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml deleted file mode 100644 index d742f3e99..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml deleted file mode 100644 index b7c0f7932..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-over-last-6h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index dfe337736..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 698c9c790..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index c1c8732a1..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 4fb462a38..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 3529cda89..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-ensemble-max-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml deleted file mode 100644 index a22347803..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml deleted file mode 100644 index a3f691914..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml deleted file mode 100644 index 070bdd695..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml deleted file mode 100644 index 350110cb6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml deleted file mode 100644 index 996a96adf..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index fcd0eeeb3..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index ded685475..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 6c0c33c60..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 5f22ed967..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 611bd2e5e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index c046e9477..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index e3c865a9c..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index d9eff7478..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 6684d9640..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 213326caf..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index f3db4e97d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 281ca45d5..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 1bf8b3892..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 0ea7ff512..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 3929850bf..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-max-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index afe0e07fa..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 8c1659d57..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 40add3643..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 8ffc73273..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index e7fcf546b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 78d16b1dc..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 10b6fcd1e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 21d8fbd88..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 4abe841a3..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index a2de5d4e7..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-ensemble-min-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index cf8082f62..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 5e8367c5e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 3e0f552c2..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index ea9813bb1..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 6cd5edfb2..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index b5062af9e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index e168123ef..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index fd4643880..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index e86944d4f..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 1c346cd79..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-highCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 348e6a58a..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index e8037bff3..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index af7409b97..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 746211e81..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 602dbd36f..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 33833038f..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 530a9670d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 186e28be0..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 7e2356758..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index c11903767..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index a8f0f31ef..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 371a15a32..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 7fb9146e7..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 437f805f6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 4e3cfc96d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-isothermal-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 570c78309..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index cff2ea153..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 7bf5935e5..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index f0294e313..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 354493e03..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-lakeBottom-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 68432ba02..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index d5b86cdbc..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 00e59015e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 115a24a5e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 12573707f..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml deleted file mode 100644 index bed25d17b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml deleted file mode 100644 index e19b9681b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml deleted file mode 100644 index bc98eba19..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml deleted file mode 100644 index f8a4e5de8..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml deleted file mode 100644 index 3b9ef5aaf..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-avg-since-last-pp-meanSea-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 46547dcc6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index c34d084cd..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 47bc4ff6a..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 081abce36..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index c1e140b75..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-meanSea-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 3e768cda1..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 207f7151f..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index db204e39d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 6ee3586c4..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index eb846a334..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 2e52186b6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 4ce1f618a..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 254dbd795..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 6e1d34f61..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 232fa62c3..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 0ccc9b599..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index efa76f4b8..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 6ae361558..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 10026ec9b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 510c685ac..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mixingLayer-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 87fee5a63..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 7ae29e7de..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index a9f72e752..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index d008126a5..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 645568ee2..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml deleted file mode 100644 index de2287905..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml deleted file mode 100644 index 40a6dd343..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml deleted file mode 100644 index 152db1fb0..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml deleted file mode 100644 index fbfdd04c1..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml deleted file mode 100644 index ac360dd11..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 2e43ebcb0..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index f1e3af350..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index fffe93bd2..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index ddfc7c195..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index a200769c6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-average-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml deleted file mode 100644 index b215d7203..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml deleted file mode 100644 index cfed74bb2..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml deleted file mode 100644 index 817f6f645..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml deleted file mode 100644 index 91f51559f..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml deleted file mode 100644 index cdb100beb..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml deleted file mode 100644 index ef587e86d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml +++ /dev/null @@ -1,83 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 43 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml deleted file mode 100644 index 16b8bfd65..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 43 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml deleted file mode 100644 index 64d39fe85..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 43 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml deleted file mode 100644 index 52a70cd20..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml +++ /dev/null @@ -1,83 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 43 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml deleted file mode 100644 index 5cceddb7b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-accum-since-last-pp-surface-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 43 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 79970018d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 41 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 07bb95baa..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 41 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 602d05848..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 41 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index ecdc9a6a9..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 41 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 798174c01..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-chem-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 41 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml deleted file mode 100644 index eb455fdc8..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml +++ /dev/null @@ -1,111 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml deleted file mode 100644 index 0a9dfd5c7..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml deleted file mode 100644 index 0a5b2fa39..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml deleted file mode 100644 index 76b8a99b0..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml +++ /dev/null @@ -1,111 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml deleted file mode 100644 index e3759f424..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-accum-since-last-pp-surface-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1.yaml deleted file mode 100644 index 8d8213322..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1001.yaml deleted file mode 100644 index 207c86ca5..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1036.yaml deleted file mode 100644 index 8727f2c35..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-15.yaml deleted file mode 100644 index ab0f2269b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-36.yaml deleted file mode 100644 index d49a0813a..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-1h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 5fcf11752..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index 0f4271ea1..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index 7f250210a..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index 486ffc5ca..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index 2e4a63993..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index 3b61a26e0..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 41aa5dbb2..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index fbeaf92f0..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index bc45b3483..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index cff1a1f8f..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 5465177fc..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 9806c2dcd..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 30d65da07..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index a438e0bb1..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 2b3b24554..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-average-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml deleted file mode 100644 index 62b647e66..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml deleted file mode 100644 index 9a5701186..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml deleted file mode 100644 index 78c70ffc9..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml deleted file mode 100644 index 3d826cf55..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml deleted file mode 100644 index 17594aecf..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-avg-since-last-pp-surface-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 766e0bb0e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,130 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index d2dca3e1b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index de26dce9d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 849d17068..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,130 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 680559d02..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 7a3551248..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index ecdfbcfca..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index 40be0a435..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index 08d3170ef..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index 6277fdcbb..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml deleted file mode 100644 index f50e7903c..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index 9d487be72..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index 48a54fc5e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml deleted file mode 100644 index 21946c715..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml deleted file mode 100644 index 97dd7b334..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-3h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index 2e8f6da7c..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index bbdde1c29..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 60a1898e2..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 0f2468782..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index a3bb037c1..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index eccf65be0..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index d2f4c75ae..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 6e4a44d02..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 85e389b74..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 53a8975bc..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-max-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index af894ea65..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index 34c44d09a..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index d888b7f57..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index d1b892750..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index b72c45a4d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml deleted file mode 100644 index b5996d3c7..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index 3abd14989..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index 6216f18f2..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml deleted file mode 100644 index 2c2b20b78..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml deleted file mode 100644 index aeeb32007..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-3h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index e29ab59b9..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index ae270b98c..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 78b48c01c..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index a9074d055..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 2abef72bb..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 5d3149724..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 253c46f4b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 9bf4b76d7..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 7728c05b6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 438febc6f..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-min-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1.yaml deleted file mode 100644 index 8af9809af..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1001.yaml deleted file mode 100644 index a6995dc38..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1036.yaml deleted file mode 100644 index 11499be8c..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-15.yaml deleted file mode 100644 index 374f34ef3..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-36.yaml deleted file mode 100644 index eed38b68d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-1h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index cc4d1e16a..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index fddd03c44..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index c4ebe4bea..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index 44d0fc0f8..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index 5c3026783..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index 66e935f61..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 69723b283..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index e838ef2e4..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 548e0f318..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 578fedb68..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 6ebf9ea03..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index e375df05f..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 3db6fcafe..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 4fe97c79b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 5fc12351d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-mode-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1.yaml deleted file mode 100644 index f061ac49e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1001.yaml deleted file mode 100644 index 338f573d8..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1036.yaml deleted file mode 100644 index 641463221..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-15.yaml deleted file mode 100644 index 720203a29..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-36.yaml deleted file mode 100644 index 890aa4bb9..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-1h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 5e6b39c59..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index 7b52d856d..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index bffe7c0db..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index f8ce4f388..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index 7a6c56ca6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index 8cf4ebe23..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 9886ef97c..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 798c16487..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index fe7de53fe..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index a0bcb87ff..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index b4d17e9fd..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 207850efb..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index df57e31c1..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index c56adb61a..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 400d516fa..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-ensemble-severity-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index a942da5af..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index e76edda5e..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index e937b3f43..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index d842c8131..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 49739a1ac..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-tropopause-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index c29e8a545..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 26229d96c..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 619b055d6..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index f575519ea..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index b3b26375b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_int-surface-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index a5a628dec..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 104 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 424d605ad..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 104 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 84494cc14..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 104 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 21c0070b2..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 104 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 1a6593a1b..000000000 --- a/share/multiom/encodings/simple/ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 104 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/CMakeLists.txt b/share/multiom/encodings/simple/ensemble/sol/CMakeLists.txt deleted file mode 100644 index 43a1eb1da..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/ensemble/sol/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/ensemble/sol - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 562057cec..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 79cb723ab..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 921be1b00..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 0d10cc087..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 971e1f73c..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-seaIceLayer-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml deleted file mode 100644 index b63b792cf..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml deleted file mode 100644 index 1c930bb38..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml deleted file mode 100644 index 4defab19b..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml deleted file mode 100644 index 5e3e90589..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml deleted file mode 100644 index 61275cd64..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-avg-since-last-pp-snow-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index c18b2f940..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 83b0fb463..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index bf487303d..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 9c1e649f2..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 57f7eee72..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-snowLayer-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml deleted file mode 100644 index 958fc99bb..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml deleted file mode 100644 index 7530d3b99..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml deleted file mode 100644 index bcddbfe08..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml deleted file mode 100644 index 7d8d35870..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml deleted file mode 100644 index 75bab7706..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 11 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index de3cf00f4..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index fdd383152..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 890b4ba1e..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 2deddea87..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index b0893d0c8..000000000 --- a/share/multiom/encodings/simple/ensemble/sol/rule-soilLayer-gg-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: lacks - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 1 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/largeEnsemble/CMakeLists.txt b/share/multiom/encodings/simple/largeEnsemble/CMakeLists.txt deleted file mode 100644 index a32187dac..000000000 --- a/share/multiom/encodings/simple/largeEnsemble/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/largeEnsemble/al") - -add_subdirectory("al") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/largeEnsemble/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/largeEnsemble - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/largeEnsemble/al/CMakeLists.txt b/share/multiom/encodings/simple/largeEnsemble/al/CMakeLists.txt deleted file mode 100644 index 76c78484e..000000000 --- a/share/multiom/encodings/simple/largeEnsemble/al/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/largeEnsemble/al/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/largeEnsemble/al - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 435df7b31..000000000 --- a/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: levtype - operation: match - value: al - - type: param - operation: match - values: - - "213101:213160" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 143 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: abstractSingleLevel - ensemble-configurator: - type: default - random-patterns-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 0687c8ca4..000000000 --- a/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: levtype - operation: match - value: al - - type: param - operation: match - values: - - "213101:213160" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 143 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: abstractSingleLevel - ensemble-configurator: - type: default - random-patterns-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index d14c9e814..000000000 --- a/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: levtype - operation: match - value: al - - type: param - operation: match - values: - - "213101:213160" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 143 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: abstractSingleLevel - ensemble-configurator: - type: default - random-patterns-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-15.yaml deleted file mode 100644 index eaa37437f..000000000 --- a/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: levtype - operation: match - value: al - - type: param - operation: match - values: - - "213101:213160" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 143 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: abstractSingleLevel - ensemble-configurator: - type: default - random-patterns-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 67820f5b2..000000000 --- a/share/multiom/encodings/simple/largeEnsemble/al/rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-abstractSingleLevel-gg-largeEnsemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: levtype - operation: match - value: al - - type: param - operation: match - values: - - "213101:213160" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 143 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: abstractSingleLevel - ensemble-configurator: - type: default - random-patterns-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/CMakeLists.txt b/share/multiom/encodings/simple/reforecast_ensemble/CMakeLists.txt deleted file mode 100644 index 056e8d654..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol") - -add_subdirectory("hl") -add_subdirectory("ml") -add_subdirectory("pl") -add_subdirectory("pt") -add_subdirectory("pv") -add_subdirectory("sfc") -add_subdirectory("sol") - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/reforecast_ensemble - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/reforecast_ensemble/hl/CMakeLists.txt b/share/multiom/encodings/simple/reforecast_ensemble/hl/CMakeLists.txt deleted file mode 100644 index 23c9c5945..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/hl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/hl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/reforecast_ensemble/hl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 1d540c55d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 1d797b923..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index aa2946f7b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index bfba774d3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index bd15dbae6..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 235131 - - 235132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 63d98289b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index f68d92496..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 9dfd034a5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 2c06bd832..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 58a33ec67..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/hl/rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-hl-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: hl - - type: param - operation: match - values: - - 10 - - 54 - - 130 - - 131 - - 132 - - 157 - - 246 - - 247 - - 3031 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/ml/CMakeLists.txt b/share/multiom/encodings/simple/reforecast_ensemble/ml/CMakeLists.txt deleted file mode 100644 index 37af556e9..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/ml/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/ml/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/reforecast_ensemble/ml - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml deleted file mode 100644 index e41c1459b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml deleted file mode 100644 index 43afb83e4..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml deleted file mode 100644 index c18f802e5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml deleted file mode 100644 index 61587b5c3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml deleted file mode 100644 index 5775248d1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-accum-since-last-pp-hybrid-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "162100:162113" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 56d31cadd..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index cf9ac10db..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 29f35edf9..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 3b3f3db42..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index c4534d412..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/ml/rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-hybrid-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: ml - - type: param - operation: match - values: - - "75:76" - - 133 - - 203 - - "246:248" - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: hybrid - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/CMakeLists.txt b/share/multiom/encodings/simple/reforecast_ensemble/pl/CMakeLists.txt deleted file mode 100644 index e97042c01..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pl/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/reforecast_ensemble/pl - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 6a7eda475..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 7e58f37e2..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 40fdaa4eb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 55a333b0c..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 97d885ea3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 83ec800f1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 8ccdc2a55..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 577769e15..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index b5ebc9a88..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 81b6b6da3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInPa-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: lower-than - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index d21c484d8..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index d1f9f3fd7..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 08d8ea3ad..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index e3448f476..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 89b92ef81..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-avg-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 235100 - - "235129:235133" - - 235135 - - 235157 - - 235246 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 6291b45da..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 6a6fb6462..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 9f0d63ac4..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 8c6279f24..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 68377a661..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pl/rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-isobaricInhPa-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levelist - operation: greater-equal - treshold: 100 - - type: levtype - operation: match - value: pl - - type: param - operation: match - values: - - 60 - - "75:76" - - "129:135" - - 203 - - "246:248" - - 157 - - 260290 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isobaricInhPa - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/CMakeLists.txt b/share/multiom/encodings/simple/reforecast_ensemble/pt/CMakeLists.txt deleted file mode 100644 index ac2208f85..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pt/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/reforecast_ensemble/pt - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1.yaml deleted file mode 100644 index 2b8373060..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-average-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1001.yaml deleted file mode 100644 index b18a2745b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-average-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1036.yaml deleted file mode 100644 index 1579c3cbf..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-average-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-15.yaml deleted file mode 100644 index 9d657c8cf..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-average-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-36.yaml deleted file mode 100644 index 142d2e107..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-average-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-average-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 235203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 6b9bcc1f1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index b5924aa8a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 82893c4ee..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 73f5707fd..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,75 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 53cd07ef7..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 53 - - 54 - - 60 - - 131 - - 132 - - 133 - - 138 - - 155 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1.yaml deleted file mode 100644 index d2c41f3a2..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-max-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1001.yaml deleted file mode 100644 index 69ace4cdf..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-max-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1036.yaml deleted file mode 100644 index 3fa6152e1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-max-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-15.yaml deleted file mode 100644 index eaacdc994..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-max-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-36.yaml deleted file mode 100644 index 697a3a080..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-max-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-max-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 237203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1.yaml deleted file mode 100644 index cf98e0fb9..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-min-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1001.yaml deleted file mode 100644 index ebb1669bc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-min-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1036.yaml deleted file mode 100644 index c90f32485..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-min-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-15.yaml deleted file mode 100644 index a78a1edb7..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-min-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-36.yaml deleted file mode 100644 index 34db67a6e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-min-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-min-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 238203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1.yaml deleted file mode 100644 index 516150308..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-std-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1001.yaml deleted file mode 100644 index 072f045d0..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-std-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1036.yaml deleted file mode 100644 index 5eb64b5ac..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-std-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-15.yaml deleted file mode 100644 index 5dc15dbcc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-std-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-36.yaml deleted file mode 100644 index ebba76d41..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pt/rule-theta-gg-reforecast-ensemble-std-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-theta-gg-reforecast-ensemble-std-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pt - - type: param - operation: match - values: - - 239203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: stddev - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: theta - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pv/CMakeLists.txt b/share/multiom/encodings/simple/reforecast_ensemble/pv/CMakeLists.txt deleted file mode 100644 index 1759c4631..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pv/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/pv/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/reforecast_ensemble/pv - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index d5e7b8f22..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 1ec342f93..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 65ace42e4..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index c5ba083d8..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 5b4d4c177..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/pv/rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-potentialVorticity-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: pv - - type: param - operation: match - values: - - 3 - - 54 - - 129 - - 131 - - 132 - - 133 - - 203 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: potentialVorticity - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/CMakeLists.txt b/share/multiom/encodings/simple/reforecast_ensemble/sfc/CMakeLists.txt deleted file mode 100644 index 7a7d897e6..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sfc/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/reforecast_ensemble/sfc - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index b28e27ad3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index e30ba21cc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index da5834255..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index dc1e7ebd7..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 34b887d02..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-cloudBase-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228023 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: cloudBase - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index ed2d39490..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 368d58917..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 15d5ec09a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 522126286..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 6c7ef49e9..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-satellite-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "260510:260513" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - satellite-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 4d409a521..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index e7657dc2a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index af942df84..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 155f518cf..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 53059d0ae..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-default-gg-wave_spec-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140251 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - ensemble-configurator: - type: default - directions-frequencies-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 12e24f886..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 5329fd1ee..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index e7468fb5a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 01a595368..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index deb679f53..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-depthBelowSeaLayer-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262118 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: depthBelowSeaLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml deleted file mode 100644 index f30ffb18e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml deleted file mode 100644 index fde0c7a60..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml deleted file mode 100644 index a5664de27..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml deleted file mode 100644 index 8eab576fe..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15.yaml +++ /dev/null @@ -1,73 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml deleted file mode 100644 index bf05603fb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-avg-since-last-pp-entireAtmosphere-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235087 - - 235088 - - 235136 - - 235137 - - 235288 - - 235383 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 9ae6b59f8..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,80 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 3f4db693b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index d717dfc7c..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index bf40846e3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,80 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index ef9953080..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,78 +0,0 @@ -tag: grib2 - -name: rule-entireAtmosphere-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 59 - - "78:79" - - "136:137" - - 164 - - 206 - - "162059:162063" - - "162071:162072" - - 162093 - - 228044 - - 228050 - - 228052 - - "228088:228090" - - 228164 - - 260132 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireAtmosphere - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 0a33bf562..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 10992a600..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index cf4e18fbf..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index ba3322feb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 0f05491a4..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-entireLake-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228007 - - 228011 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: entireLake - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 47d6800cb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index c8bd85342..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index f3a3b7986..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index c13889c10..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index b0419b29a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGround-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 129172 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGround - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml deleted file mode 100644 index e20246063..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml deleted file mode 100644 index c3a431e66..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml deleted file mode 100644 index eee096dae..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml deleted file mode 100644 index 307594499..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml deleted file mode 100644 index 392f6569d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt10m-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228005 - - 235165 - - 235166 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 91ca9050f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 0c1f77d29..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 1beb4e3fc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 1933b94d4..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index c769be359..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "165:166" - - 207 - - 228029 - - "228131:228132" - - 260260 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml deleted file mode 100644 index 7dfe658cb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index 203307a7a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index 0a92c038c..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml deleted file mode 100644 index f2a991669..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml deleted file mode 100644 index edb66880c..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228028 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml deleted file mode 100644 index 9ec84b6b3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index fff9847f6..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index d5fb50828..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml deleted file mode 100644 index 578ac0472..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml deleted file mode 100644 index c70da1ef3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-over-last-6h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 123 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 4b0eeca38..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index e95277a8b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 7531d5290..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index b670f861b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index d6ee4579b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt10m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 49 - - 237207 - - 237318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml deleted file mode 100644 index 777d5dfce..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml deleted file mode 100644 index 444282d35..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml deleted file mode 100644 index f9ad0abdc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml deleted file mode 100644 index f0211945f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml deleted file mode 100644 index 4b7791839..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-avg-since-last-pp-heightAboveGroundAt2m-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228004 - - 235168 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index eca537d03..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 0edfb07f0..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 36a87cdf5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index b1e30710f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 261492ff9..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "167:168" - - 174096 - - 228037 - - 260242 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index d410f0bfe..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 0bd68abbf..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index ba09b2c49..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 58519be70..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index d152b5a17..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 121 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index dec782e3b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 2aa3bf6ae..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 0937c062c..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 13ac5b6ff..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 480c0e62d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 201 - - 237167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index 5df55478e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 80e60f65f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 8119670da..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 4637e75eb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 5fe6db7a0..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 122 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index ae2dbd2ac..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index fc9dcbc9d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 1457d681c..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 787955cb2..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 92e74f995..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveGroundAt2m-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 202 - - 238167 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveGroundAt2m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 641ba8d4f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 5b1c388c0..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 50f44a980..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index e74abfd52..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index f648f4f4f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-heightAboveSeaAt10m-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 140245 - - 140249 - - 140233 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: heightAboveSeaAt10m - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index c60208f4d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index f36a40f70..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 3144057dc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index d18bc4fce..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index e0c236bf7..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-highCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3075 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: highCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index d50626ca1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 4d4c239e2..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 78709dfaa..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index e467193a1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index bfafdf398..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceLayerOnWater-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228014 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceLayerOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 93c9db6c0..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index ce2a14e32..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index e955ba39f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index ba69af1a3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index bdf3448fc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-iceTopOnWater-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: iceTopOnWater - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index d1dfe4271..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 9a322a009..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index addd360d4..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 979453f82..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 43e028e61..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-isothermal-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 262104 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: isothermal - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index e8d7e63c6..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 581c43760..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index d9bdfb7f5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 3999003fd..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index cc62a46d4..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lakeBottom-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228010 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lakeBottom - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index da1debdea..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 7484d8b4a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 2babc1457..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index c3def50df..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 3fe2d4c34..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-lowCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3073 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: lowCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml deleted file mode 100644 index 4889ad21e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml deleted file mode 100644 index 25d7ee399..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml deleted file mode 100644 index 3744c4b3b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml deleted file mode 100644 index d6068bd37..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml deleted file mode 100644 index db0b55d4e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-avg-since-last-pp-meanSea-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 580e31362..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 1ad2dd656..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 3557fafbf..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 884af9fc5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 295e98f9d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-meanSea-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 151 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: meanSea - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 04de51a97..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 90a24d6e2..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 90d36a71a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 4d3e45dc8..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 757ee62c6..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mediumCloudLayer-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 3074 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mediumCloudLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 20fc5b649..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 3378cca24..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 3cb8f42e2..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 181eb57a6..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 9a0b01ff7..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixedLayerParcel-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228231:228234" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixedLayerParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 777e23aa7..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index f4bd6c542..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index c811b9199..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 68a3faaa0..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 96a7f76ff..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mixingLayer-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228008:228009" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mixingLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 26ad684c5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index f5fa564b1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 9332cad12..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 6cb608620..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 06f68c739..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-mostUnstableParcel-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228235:228237" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: mostUnstableParcel - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml deleted file mode 100644 index 0b094d123..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml deleted file mode 100644 index a896de962..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml deleted file mode 100644 index c15d6e219..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml deleted file mode 100644 index a631ce136..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml deleted file mode 100644 index c9a3fb75b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-accum-since-last-pp-nominalTop-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "178:179" - - "208:209" - - 212 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index fd66d4693..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 5bfb26e5d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 7562e3d11..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index e931071a0..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index c85d0069a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml deleted file mode 100644 index 5cbb3df5a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml deleted file mode 100644 index 20bd4db3f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml deleted file mode 100644 index 837f465fc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml deleted file mode 100644 index b1b4faa55..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml deleted file mode 100644 index 4a17c6822..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-nominalTop-gg-reforecast-ensemble-avg-since-last-pp-nominalTop-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235039 - - 235040 - - 235049 - - 235050 - - 235053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: nominalTop - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml deleted file mode 100644 index c9d5f0d4a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml +++ /dev/null @@ -1,83 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml deleted file mode 100644 index 58fd15671..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml deleted file mode 100644 index 795f83efb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml deleted file mode 100644 index cabd23f2c..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml +++ /dev/null @@ -1,83 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml deleted file mode 100644 index 160976eb9..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml +++ /dev/null @@ -1,81 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228080:228082" - - "233032:233035" - - "235062:235064" - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: custom - tables-version: 30 - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 0412f78ac..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index ab7fad91f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 701f4f88f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index e0ed1191e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index f58537f63..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-chem-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: composed - operation: all - filters: - - type: chem - operation: has - - type: wavelength - operation: lacks - - type: chem - operation: lower-than - treshold: 900 - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "228083:228085" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - chemistry-configurator: - type: chemical - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml deleted file mode 100644 index c660bff82..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1.yaml +++ /dev/null @@ -1,111 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml deleted file mode 100644 index 026011253..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml deleted file mode 100644 index db8aeba74..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml deleted file mode 100644 index 3eceb76fe..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15.yaml +++ /dev/null @@ -1,111 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml deleted file mode 100644 index 0eb3a62e5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36.yaml +++ /dev/null @@ -1,109 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-accum-since-last-pp-surface-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 8 - - 9 - - 20 - - 44 - - 45 - - 47 - - 50 - - 57 - - 58 - - "142:147" - - 169 - - "175:177" - - "180:182" - - 189 - - "195:197" - - 205 - - "210:211" - - 213 - - 228 - - 239 - - 240 - - 3062 - - 3099 - - "162100:162113" - - "222001:222256" - - 228021 - - 228022 - - 228129 - - 228130 - - 228143 - - 228144 - - 228216 - - 228228 - - 228251 - - 231001 - - 231002 - - 231003 - - 231005 - - 231010 - - 231012 - - 231057 - - 231058 - - "233000:233031" - - 260259 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: accumul - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1.yaml deleted file mode 100644 index ff784a1ff..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1001.yaml deleted file mode 100644 index 3bdd45206..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1036.yaml deleted file mode 100644 index 7f848b150..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-15.yaml deleted file mode 100644 index 011ecf2c6..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-36.yaml deleted file mode 100644 index a549046d8..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-1h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228051 - - 228053 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 476c360fc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index ab3c22a24..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index 07c856efa..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index 884fe2520..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index 79129bd75..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228057 - - 228059 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index edbda90e5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index c211e2d4a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 193edf99c..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 7328ffdf5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 635b0c62a..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228058 - - 228060 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: average - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index e6cc345ad..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 3ff9c3431..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index a4a695f3f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index c28b6f720..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 4f79d8ebb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-average-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "235033:235038" - - 235189 - - 235326 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml deleted file mode 100644 index cdd2d2137..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml deleted file mode 100644 index e10c535f0..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1001.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml deleted file mode 100644 index 4a4f0c09b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1036.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml deleted file mode 100644 index 26ecda8ea..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-15.yaml +++ /dev/null @@ -1,79 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml deleted file mode 100644 index a006e5092..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-36.yaml +++ /dev/null @@ -1,77 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-avg-since-last-pp-surface-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 235020 - - 235021 - - 235031 - - "235033:235038" - - "235041:235043" - - 235051 - - 235052 - - 235055 - - 235078 - - 235079 - - 235134 - - 235283 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index d69be626d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,130 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 7762cbc5e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index abb47d29e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 313003f9d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,130 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index c280552fb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,128 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "15:18" - - "26:32" - - 33 - - "34:43" - - "66:67" - - 74 - - 129 - - 134 - - 139 - - 141 - - 148 - - 159 - - "160:163" - - 170 - - "172:174" - - "186:188" - - 198 - - "229:232" - - "234:236" - - 238 - - "243:245" - - 3020 - - 3067 - - 160198 - - 200199 - - 210200 - - 210201 - - 210202 - - 228003 - - 228012 - - "210186:210191" - - 210262 - - 210263 - - 210264 - - "228015:228020" - - 228024 - - 228032 - - "228046:228048" - - 228141 - - "228217:228221" - - 260004 - - 260005 - - 260015 - - 260038 - - 260048 - - 260109 - - 260121 - - 260123 - - 260255 - - 260289 - - 260509 - - 260688 - - 261001 - - 261002 - - 261014 - - 261015 - - 261016 - - 261018 - - 262000 - - 262100 - - 262139 - - 262140 - - 262144 - - 262124 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 6ad8a9a5b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index 77b46b853..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index f024ccb40..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index 97031a8a8..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index 8f6d0e7cb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228222 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml deleted file mode 100644 index d15e22410..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index 93d58ad84..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index 1a5714a71..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml deleted file mode 100644 index fe60660c5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml deleted file mode 100644 index e2e73e916..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-3h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228026 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index ab67104a5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index e91382b38..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 96edb1f2f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 9169ffdfe..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index be0a0c35d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228224 - - 228035 - - 228036 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: max - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 7c2498764..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 661972759..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index a28714f65..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 16797d652..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,72 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 273d62ac1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-max-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228226 - - 237013 - - 237055 - - 237117 - - 237321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: max - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 0b97046a1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index 94026e71b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index 2d5b2ae58..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index ed32d1417..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index 4f3b7dbe0..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228223 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml deleted file mode 100644 index 6d5c51d91..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml deleted file mode 100644 index 368780600..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml deleted file mode 100644 index db6abf2aa..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml deleted file mode 100644 index 4f5d3a7dc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml deleted file mode 100644 index 84ce46779..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-3h-simple-paramIdECMF-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228027 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 3h - param-configurator: - type: paramIdECMF - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index 997c58cb8..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 1ff3f7544..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index b3139c79f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 7300e3377..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 0ea40446d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228225 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: min - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index b71f51d0b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index 5fe977cb1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 445b460fe..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index f68e095b1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,70 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index af9d190cb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-min-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228227 - - 238055 - - 238013 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: min - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1.yaml deleted file mode 100644 index 8f79790ee..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1001.yaml deleted file mode 100644 index b449dd9a7..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1036.yaml deleted file mode 100644 index b75250f49..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-15.yaml deleted file mode 100644 index 88f3a5b4c..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-36.yaml deleted file mode 100644 index eb6629410..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-1h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260320 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index c3e7ec635..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index f15badc3f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index 18e3e60ff..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index 87361ce1c..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index a40b5fdeb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260321 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index a9f27b749..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 435929386..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 7564317a1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 584a27010..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 5bde189cc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260339 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: mode - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 743feb17f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index e1e9316c2..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index ecb0227f5..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index 54173b71d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index 141563cbb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-mode-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260683 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: mode - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1.yaml deleted file mode 100644 index 074367caf..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1001.yaml deleted file mode 100644 index ca5f077b3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1036.yaml deleted file mode 100644 index 62d6edbaf..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-15.yaml deleted file mode 100644 index 41a6b3b99..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-36.yaml deleted file mode 100644 index b086929af..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-1h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260318 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 1h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1.yaml deleted file mode 100644 index 1695a2278..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1001.yaml deleted file mode 100644 index 30bbcc824..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1036.yaml deleted file mode 100644 index 905bb6dc6..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-15.yaml deleted file mode 100644 index e35c3322b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-36.yaml deleted file mode 100644 index f568c2cd1..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-3h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260319 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 3h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1.yaml deleted file mode 100644 index 5d330665b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1001.yaml deleted file mode 100644 index 0baeb9b40..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1036.yaml deleted file mode 100644 index 0261a29ae..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-15.yaml deleted file mode 100644 index 1e70d2615..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-36.yaml deleted file mode 100644 index 410496fbb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-over-last-6h-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260338 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: fixed-timerange - type-of-statistical-processing: severity - overall-length-of-timerange: 6h - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1.yaml deleted file mode 100644 index 724ca9ee2..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1001.yaml deleted file mode 100644 index d58e9acdc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1036.yaml deleted file mode 100644 index 13498a90e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-15.yaml deleted file mode 100644 index ce395b30b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-36.yaml deleted file mode 100644 index a56a53d8e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-surface-gg-reforecast-ensemble-severity-since-last-pp-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 260682 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: severity - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 6d0e10bda..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index d520d9fb0..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 838aa0b1f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 3289de3ef..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 88adc64fb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,65 +0,0 @@ -tag: grib2 - -name: rule-tropopause-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - 228045 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: tropopause - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index cc146b196..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index c38020423..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 83d8945fe..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 604327a43..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,76 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index fac565f64..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,74 +0,0 @@ -tag: grib2 - -name: rule-wam_int-surface-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140098:140105" - - "140112:140113" - - "140121:140129" - - "140131:140134" - - "140207:140209" - - "140211:140212" - - "140214:140232" - - "140234:140239" - - 140244 - - "140252:140254" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 485b5d7a3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 45778a75e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 3497e3e96..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index e07d66eef..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index ca94e8a1d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sfc/rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-wam_period-surface-default-gg-wave_period-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sfc - - type: param - operation: match - values: - - "140114:140120" - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: surface - ensemble-configurator: - type: default - period-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/CMakeLists.txt b/share/multiom/encodings/simple/reforecast_ensemble/sol/CMakeLists.txt deleted file mode 100644 index d256d2ed3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -file(GLOB encoding_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/encodings/simple/reforecast_ensemble/sol/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${encoding_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/encodings/simple/reforecast_ensemble/sol - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 89c1eb358..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index 6f44d2698..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 4029a34f3..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 15d1caff9..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 89da6dbfe..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-seaIceLayer-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 262000 - - 262024 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: seaIceLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml deleted file mode 100644 index fddcc3fd6..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml deleted file mode 100644 index d53fa473f..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml deleted file mode 100644 index d1da86735..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml deleted file mode 100644 index 0dadefb83..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml deleted file mode 100644 index c337052dc..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-avg-since-last-pp-snow-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235078 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index 98cab590d..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index c44afa18e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index b371fdd0e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index bfe115aad..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,71 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index ba962ebcb..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-snowLayer-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 33 - - 74 - - 238 - - 228038 - - 228141 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: snowLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml deleted file mode 100644 index ea7c97c2b..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml deleted file mode 100644 index 4687d2d74..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml deleted file mode 100644 index 77204df44..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml deleted file mode 100644 index 9de96c11e..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15.yaml +++ /dev/null @@ -1,68 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml deleted file mode 100644 index d86131457..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-avg-since-last-pp-soilLayer-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 235077 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 61 - time-statistics-configurator: - type: since-last-post-processing-step - type-of-statistical-processing: average - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml deleted file mode 100644 index c5af7ee97..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: lacks - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml deleted file mode 100644 index cb2f58295..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1001.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1001 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1001 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml deleted file mode 100644 index 3b931fd77..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1036.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-1036 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: match - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 1036 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml deleted file mode 100644 index 7cdbf7953..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-15.yaml +++ /dev/null @@ -1,69 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-15 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: lacks - - type: class - operation: ignore - value: d1 - - type: method - operation: has - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 15 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml b/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml deleted file mode 100644 index 7f59836fe..000000000 --- a/share/multiom/encodings/simple/reforecast_ensemble/sol/rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-36.yaml +++ /dev/null @@ -1,67 +0,0 @@ -tag: grib2 - -name: rule-soilLayer-gg-reforecast-ensemble-instant-simple-paramId-36 - -filter: - type: composed - operation: all - filters: - - type: repres - operation: match - value: gaussian-grid - - type: anoffset - operation: has - - type: class - operation: ignore - value: d1 - - type: number - operation: has - - type: hdate - operation: has - - type: levtype - operation: match - value: sol - - type: param - operation: match - values: - - 260360 - - 260199 - - 183 - - type: packing - operation: match - value: simple - -encoder: - type: grib2 - indicator-section: - template-number: 0 - identification-section: - template-number: 0 - origin-configurator: - type: default - sub-centre: 0 - data-type-configurator: - type: default - reference-time-configurator: - type: default - tables-configurator: - type: default - local-tables-version: 0 - local-use-section: - template-number: 36 - grid-definition-section: - template-number: 40 - product-definition-section: - template-number: 60 - point-in-time-configurator: - type: default - param-configurator: - type: paramId - model-configurator: - type: default - level-configurator: - type: soilLayer - ensemble-configurator: - type: default - data-representation-section: - template-number: 0 diff --git a/share/multiom/generate_knowledge/.gitignore b/share/multiom/generate_knowledge/.gitignore deleted file mode 100644 index 1d700ed84..000000000 --- a/share/multiom/generate_knowledge/.gitignore +++ /dev/null @@ -1 +0,0 @@ -pyenv diff --git a/share/multiom/generate_knowledge/GenerateCPP.py b/share/multiom/generate_knowledge/GenerateCPP.py deleted file mode 100644 index 30b06470c..000000000 --- a/share/multiom/generate_knowledge/GenerateCPP.py +++ /dev/null @@ -1,433 +0,0 @@ -import functools -import os -from PDT import ( - categories, - categorySelectorsWithMappedPdt, - categoriesWithAllPossibleValues, - camelToPascalCase, - listAllCategoriesInOrder, - defaultCategoryValue, -) - -# This file needs refactoring using jinja -# Will generaed multio/mars2grib/generated/InferPDT.h - - -def generateCPPEnumForCategory(categories, categoryName, setOfValues, namespace): - """ - Produce string with valid CPP code representing a enum class for a given category. - """ - values = [] - default = ( - None - if (None in setOfValues) or (categoryName not in categories.name()) - else defaultCategoryValue(categories[categoryName]) - ) - defaultVal = default if default is None else camelToPascalCase(default) - values.append(f" {defaultVal} = 0,") - for v in setOfValues.difference(set([default])): - values.append(" {},".format(v if v is None else camelToPascalCase(v))) - - enumName = camelToPascalCase(categoryName) - valuesStr = "\n".join(values) - - readIfElse = [] - writeCase = [] - for v in setOfValues: - valName = v if v is None else camelToPascalCase(v) - values.append(f"""{{"{v}", {enumName}::{valName}}}""") - - readIfElse.append(f"""if (s == "{v}") {{ return {enumName}::{valName}; }}""") - writeCase.append(f"""case {enumName}::{valName}: return "{v}"; """) - - readIfElseStr = "\n".join(readIfElse) - writeCaseStr = "\n".join(writeCase) - - errReadEnumValuesStr = ", ".join([f"{v}" for v in setOfValues]) - errReadEnumStr = f"Value for {categoryName} does not match on of the following [{errReadEnumValuesStr}]" - return f""" -namespace {namespace} {{ - -enum class {enumName}: std::uint64_t -{{ -{valuesStr} -}}; - -}} - -namespace multio::datamod {{ - -template <> -struct DumpType<{namespace}::{enumName}> {{ - static std::string dump({namespace}::{enumName} v) {{ - using namespace {namespace}; - switch (v) {{ - {writeCaseStr} - default: - throw multio::mars2grib::Mars2GribException("DumpType<{enumName}>::dump: Unexpected value for {enumName}", Here()); - }} - }} -}}; - -template <> -struct ParseType<{namespace}::{enumName}> {{ - static {namespace}::{enumName} parse(const std::string& s) {{ - using namespace {namespace}; - {readIfElseStr} - throw multio::mars2grib::Mars2GribException{{std::string("ParseType<{enumName}>::parse(\"") + s + std::string("\"): {errReadEnumStr}"), Here()}}; - }} -}}; - -}} - - -namespace multio::util {{ - -template<> -struct Print<{namespace}::{enumName}> {{ - static void print(PrintStream& ps, const {namespace}::{enumName}& t) {{ - util::print(ps, multio::datamod::TypeDumper<{namespace}::{enumName}>::dump(t)); - }} -}}; - -}} // namespace multio::util - - -""" - - -def generateCPPPDTCatRecord( - categories, - categoriesWithAllPossibleValues, - categoryHandleOrder, - pdtCatName, - namespace, -): - """ - Produce string with valid CPP code defining a enum with all categories and a KeySet - """ - pdtCatStringValue = "product-categories" - - catEnumValues = [] - for c in categoryHandleOrder: - catEnumValues.append(f" {camelToPascalCase(c)},") - - catEnumValuesStr = "\n".join(catEnumValues) - - entryDefs = [] - for index, c in enumerate(categoryHandleOrder, start=1): - default = ( - None - if (None in categoriesWithAllPossibleValues[c]) - or (c not in categories.name()) - else defaultCategoryValue(categories[c]) - ) - defaultVal = default if default is None else camelToPascalCase(default) - kdStr = f"""constexpr auto {camelToPascalCase(c)}Entry = dm::EntryDef<{camelToPascalCase(c)}>{{"{c}"}}.withDefault({camelToPascalCase(c)}::{defaultVal}).withAccessor([](auto&& v){{ return &v.{c}; }});""" - entryDefs.append(kdStr) - - entryDefStr = "\n".join(entryDefs) - - entries = [] - for index, c in enumerate(categoryHandleOrder, start=1): - entries.append( - f""" dm::EntryType_t {c};""" - ) - - entriesStr = "\n".join(entries) - - entriesList = [] - for index, c in enumerate(categoryHandleOrder, start=1): - entriesList.append(f"{camelToPascalCase(c)}Entry") - - entriesListStr = ", ".join(entriesList) - - return f""" -namespace {namespace} {{ - -namespace dm = multio::datamod; - -{entryDefStr} - -struct {pdtCatName} {{ -{entriesStr} - - static constexpr std::string_view record_name_ = "{pdtCatStringValue}"; - static constexpr auto record_entries_ - = std::make_tuple({entriesListStr}); -}}; - -}}; // namespace {namespace} - -namespace std {{ - -template<> -struct equal_to<{namespace}::{pdtCatName}>: multio::datamod::EqualToRecord {{}}; -template<> -struct not_equal_to<{namespace}::{pdtCatName}>: multio::datamod::NotEqualToRecord {{}}; - - -template<> -struct hash<{namespace}::{pdtCatName}>: multio::datamod::HashRecord {{}}; -}} - -namespace multio::util {{ -template<> -struct Print<{namespace}::{pdtCatName}>: multio::datamod::PrintRecord {{}}; - -}} -""" - - -def generateCPP( - categories, - categorySelectorsWithMappedPdt, - categoriesWithAllPossibleValues, - namespace, -): - """ - Produce a string with valid CPP code that produces a function that can infer a PDT. - """ - enums = "\n\n\n".join( - [ - generateCPPEnumForCategory(categories, k, v, namespace=namespace) - for (k, v) in categoriesWithAllPossibleValues.items() - ] - ) - - categoryHandleOrder = listAllCategoriesInOrder(categories) - - pdtCatName = "PDTCat" - - pdtRecord = generateCPPPDTCatRecord( - categories, - categoriesWithAllPossibleValues, - categoryHandleOrder, - pdtCatName=pdtCatName, - namespace=namespace, - ) - decisionMapTypeString = ( - f"using DecisionMap = std::unordered_map<{pdtCatName}, std::int64_t>; " - ) - - def buildDecisionMapString(subCatList, selector, mappedSelectorList): - if len(subCatList) == 0: - if len(mappedSelectorList) == 1: - return [([], "{}".format(mappedSelectorList[0][3][0]))] - else: - # Should not occur, as already checked - raise ValueError( - f"buildDecisionMapString: selector {selector} matches multiple or no pdts: {mappedSelectorList}" - ) - - else: - cat = subCatList[0] - enumName = camelToPascalCase(cat) - allVals = categoriesWithAllPossibleValues[cat] - - valsInSelectors = set([]) - for selTuple in mappedSelectorList: - sel = selTuple[0] - valsInSelectors.add(sel[cat] if cat in sel.keys() else None) - - cases = [] - for val in valsInSelectors: - - def filterSelector(sel): - if val is None: - if cat not in sel.keys(): - return True - else: - return sel[cat] is None - else: - if cat not in sel.keys(): - return False - else: - return sel[cat] == val - - # Recursion on a proper selection - selectorsForVal = [ - s for s in mappedSelectorList if filterSelector(s[0]) - ] - - default = ( - None - if (None in categoriesWithAllPossibleValues[cat]) - or (cat not in categories.name()) - else defaultCategoryValue(categories[cat]) - ) - defaultVal = default if default is None else camelToPascalCase(default) - - enumVal = val if val is None else camelToPascalCase(val) - kvStr = f"{enumName}::{enumVal}" - - for subEnums, pdtVal in buildDecisionMapString( - subCatList[1:], {cat: val, **selector}, selectorsForVal - ): - # Remove this if cond when None/default should be explicitly in the list - if val is None: - # Basically just forward - cases.append(([f"{enumName}::{defaultVal}", *subEnums], pdtVal)) - else: - cases.append(([kvStr, *subEnums], pdtVal)) - - return cases - - decisionMapCases = buildDecisionMapString( - categoryHandleOrder, {}, categorySelectorsWithMappedPdt - ) - - decisionMapCasesStr = ",\n".join( - [ - f"""{{{pdtCatName}{{ {", ".join(subEnums)} }}, {pdtVal} }}""" - for (subEnums, pdtVal) in decisionMapCases - ] - ) - decisionMap = f"""{{{decisionMapCasesStr}}}""" # Wrapped in initializer list - return f""" -#pragma once - - -// -// !!!!!!!! -// !! !! -// !! !! -// !! !! -// !! !!!!!!!! !! -// !! !!!!!!!!!!!! !! -// !! !!!!!!!!!!!! !! -// !! !!!!!!!!!!!! !! -// !! !!!!!!!! !! -// !! !!!!!!!! !! -// !! !!!!!!!! !! -// !! !!!! !! -// !! !!!! !! -// !! !! -// !! !!!! !! -// !! !!!!!!!! !! -// !! !!!!!!!!!!!! !! -// !! !!!!!!!!!!!! !! -// !! !!!!!!!! !! -// !! !!!! !! -// !! !! -// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -// -// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -// !!! Do not modify. !!! -// !!! This file was generated by running `python3 GenerateCPP.py` !!! -// !!! in multio/share/multiom/generate_knowledge. !!! -// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - -#include -#include -#include -#include -#include - -#include "multio/util/Hash.h" -#include "multio/util/TypeTraits.h" -#include "multio/util/Print.h" - -#include "multio/datamod/core/EntryDef.h" -#include "multio/datamod/core/TypeParserDumper.h" -#include "multio/datamod/core/Hash.h" -#include "multio/datamod/core/Print.h" -#include "multio/datamod/core/Compare.h" -#include "multio/mars2grib/Mars2GribException.h" - -{enums} - -{pdtRecord} - -namespace {namespace} {{ - -template -struct InferPdt {{ - -{decisionMapTypeString} - - -std::int64_t inferProductDefinitionTemplateNumber(const {pdtCatName}& pdtCat) const {{ - using namespace multio::datamod; - static const DecisionMap map{{{decisionMap}}}; - - if (auto search = map.find(pdtCat); search != map.end()) {{ - return search->second; - }} - - std::ostringstream oss; - oss << "PDT categories can not be mapped to a pdt number: "; - util::print(oss, pdtCat); - throw Mars2GribException(oss.str(), Here()); -}} - -}}; - -}} -""" - - -def generateCPPTestInclude(categorySelectorsWithMappedPdt, namespace): - """ - Produce a string with valid CPP code that contains a vector with an pairs of ptd and an unordered map as selector it should be mapped by - """ - vals = ", ".join( - [ - """{{{pdt}, {{{selStr}}} }}""".format( - pdt=s[3][0], - selStr=", ".join( - ["""{{ "{}", "{}" }}""".format(k, v) for (k, v) in s[0].items()] - ), - ) - for s in categorySelectorsWithMappedPdt - ] - ) - return f""" -#pragma once -#include -#include - -#include "multio/message/Metadata.h" - -namespace {namespace}::test {{ - -struct PdtWithSelector{{ - std::int64_t productDefinitionTemplateNumber; - message::Metadata selector; -}}; - -const static std::vector mappedPdtAndSelectors{{ -{vals} -}}; -}} -""" - - -namespace = "multio::mars2grib::rules" - - -def clangFormat(fname): - os.system(f"clang-format -i {fname}") - - -# Gen C++ -cppFile = "../../../src/multio/mars2grib/generated/InferPDT.h" -with open(cppFile, "w") as outFile: - cppString = generateCPP( - categories, - categorySelectorsWithMappedPdt, - categoriesWithAllPossibleValues, - namespace=namespace, - ) - outFile.write(cppString) -clangFormat(cppFile) - - -cppTestFile = "../../../src/multio/mars2grib/generated/InferPDTTest.h" -with open(cppTestFile, "w") as outFile: - cppString = generateCPPTestInclude( - categorySelectorsWithMappedPdt, namespace=namespace - ) - outFile.write(cppString) -clangFormat(cppTestFile) diff --git a/share/multiom/generate_knowledge/GenerateEncoding.py b/share/multiom/generate_knowledge/GenerateEncoding.py deleted file mode 100644 index 6e0b99404..000000000 --- a/share/multiom/generate_knowledge/GenerateEncoding.py +++ /dev/null @@ -1,967 +0,0 @@ -import re -import os -import itertools -import yaml -from functools import reduce -from enum import Enum -from typing import Union, List, Optional, Annotated, TypeAlias, Dict -from pydantic import ( - BaseModel, - Field, - ValidationError, - validator, - AfterValidator, - model_validator, -) - -from InferPDT import inferPDT, pdtMatcher, pdtCategoriesHandleOrder - -# from pydantic_yaml import parse_yaml_raw_as, to_yaml_str - - -class Quoted(BaseModel): - value: str - - -def quoted(v: str) -> Quoted: - return Quoted(value=v) - - -# define a custom representer for strings -def quoted_presenter(dumper, data): - """ - Preserve multiline strings when dumping yaml. - https://github.com/yaml/pyyaml/issues/240 - """ - if "\n" in data: - # Remove trailing spaces messing out the output. - block = "\n".join([line.rstrip() for line in data.splitlines()]) - if data.endswith("\n"): - block += "\n" - return dumper.represent_scalar("tag:yaml.org,2002:str", block, style="|") - return dumper.represent_scalar("tag:yaml.org,2002:str", data.value, style='"') - - -# yaml.add_representer(Quoted, quoted_presenter) -# yaml.representer.SafeRepresenter.add_representer(Quoted, quoted_presenter) -# yaml.add_representer(str, quoted_presenter) - - -class MyDumper(yaml.SafeDumper): - # HACK: insert blank lines between top-level objects - # inspired by https://stackoverflow.com/a/44284819/3786245 - def write_line_break(self, data=None): - super().write_line_break(data) - - if len(self.indents) == 1: - super().write_line_break() - - def increase_indent(self, flow=False, indentless=False): - return super(MyDumper, self).increase_indent(flow, False) - - def represent_data(self, data): - if isinstance(data, Quoted): - return quoted_presenter(self, data) - return super().represent_data(data) - - # def expect_block_sequence(self): - # indentless = (self.mapping_context and not self.indention) - # self.increase_indent(flow=True) - # self.state = self.expect_first_block_sequence_item - - -def toYAML(d): - # return yaml.dump(d, Dumper=MyDumper, default_flow_style=False, indent=2, sort_keys=False) - return yaml.dump(d, Dumper=MyDumper, default_flow_style=False, sort_keys=False) - - -def isParamRange(val: str) -> str: - regex = re.compile(r"^\d+:\d+$") - if regex.match(val): - # TODO elaborate checking range - return val - raise ValueError(f"Not a valid param range {val}") - - -ParamCheckedType: TypeAlias = Union[Annotated[str, AfterValidator(isParamRange)], int] -ParamBaseType: TypeAlias = Union[str, int] - - -class Param(BaseModel): - value: ParamCheckedType = Field(union_mode="left_to_right") - - -def param(v: ParamBaseType) -> Param: - return Param(value=v) - - -class MatchParam(BaseModel): - values: List[Param] - - -def matchParam(l: List[ParamBaseType]) -> MatchParam: - return MatchParam(values=[param(v) for v in l]) - - -class MatchType(BaseModel): - type: str - value: str - - -def matchType(t: str, v: str) -> MatchType: - return MatchType(type=t, value=v) - - -class NotMatchType(BaseModel): - type: str - value: str - - -def notMatchType(t: str, v: str) -> NotMatchType: - return NotMatchType(type=t, value=v) - - -class NotMatchType(BaseModel): - type: str - value: str - - -def notMatchType(t: str, v: str) -> NotMatchType: - return NotMatchType(type=t, value=v) - - -class TypeTreshold(BaseModel): - type: str - operation: str - treshold: int - - -def typeGE(t: str, v: int) -> TypeTreshold: - return TypeTreshold(type=t, operation="greater-equal", treshold=v) - - -def typeGT(t: str, v: int) -> TypeTreshold: - return TypeTreshold(type=t, operation="greater-than", treshold=v) - - -def typeLE(t: str, v: int) -> TypeTreshold: - return TypeTreshold(type=t, operation="lower-equal", treshold=v) - - -def typeLT(t: str, v: int) -> TypeTreshold: - return TypeTreshold(type=t, operation="lower-than", treshold=v) - - -class HasType(BaseModel): - type: str - - -def hasType(t: str) -> HasType: - return HasType(type=t) - - -class LacksType(BaseModel): - type: str - - -def lacksType(t: str) -> LacksType: - return LacksType(type=t) - - -RuleFilterType: TypeAlias = Union[ - MatchParam, HasType, LacksType, MatchType, NotMatchType, TypeTreshold, "ComposeAll" -] - - -class RuleFilter(BaseModel): - filter: RuleFilterType = Field(union_mode="left_to_right") - - -def ruleFilter(v: Union[RuleFilter, RuleFilterType]) -> RuleFilter: - match v: - case RuleFilter(): - return v - case _: - return RuleFilter(filter=v) - - -class ComposeAll(BaseModel): - filters: List[RuleFilter] - - -def composeAll(vals: List[Union[RuleFilter, RuleFilterType]]) -> ComposeAll: - return ComposeAll(filters=[ruleFilter(v) for v in vals]) - - -# Encode - - -# Section 0 -class IndicatorSection(BaseModel): - templateNumber: int = 0 - - -# Section 1 - - -class OriginConfig(BaseModel): - type: str = "default" - subCentre: int = 0 - - -class DataTypeConfig(BaseModel): - type: str = "default" - - -class ReferenceTimeConfig(BaseModel): - type: str = "default" - - -class TablesConfig(BaseModel): - type: str = "default" - tablesVersion: Optional[int] = None - localTablesVersion: int = 0 - - -# Explicit object for mars keyword "type" to allow partial creation -class MarsType(BaseModel): - type: str - - -def marsType(type: str) -> MarsType: - return MarsType(type=type) - - -# Explict object for partial creation -class IdentTemplateNumber(BaseModel): - templateNumber: int = 0 - - -class IdentificationSection(BaseModel): - marsType: Optional[MarsType] = None # Used to put in name - templateNumber: IdentTemplateNumber = IdentTemplateNumber() - origin: OriginConfig = OriginConfig() - dataType: DataTypeConfig = DataTypeConfig() - referenceTime: ReferenceTimeConfig = ReferenceTimeConfig() - tables: TablesConfig = TablesConfig() - - -# Section 2 -class LocalUse(BaseModel): - templateNumber: int = 1 - - -def localUse(tn: int) -> LocalUse: - return LocalUse(templateNumber=tn) - - -# Section 3 -class GridDefinition(BaseModel): - templateNumber: int = 40 - shortName: str = "gg" - - -def gridDefinition(tn: int, n: str) -> GridDefinition: - return GridDefinition(templateNumber=tn, shortName=n) - - -# Section 4 -class ModelConfig(BaseModel): - type: str = "default" - - -def modelConfig(t: str) -> ModelConfig: - return ModelConfig(type=t) - - -class PointInTime(BaseModel): - type: str = "default" - descriptiveName: str = "instant" - - -class TimeRange(BaseModel): - type: str - typeOfStatisticalProcessing: str - overallLengthOfTimeRange: Optional[str] = None - descriptiveName: str - - -TimeConfigType: TypeAlias = Union[PointInTime, TimeRange] - - -class TimeConfig(BaseModel): - config: TimeConfigType = Field(union_mode="left_to_right") - - -def timeConfig(cfg: TimeConfigType) -> TimeConfig: - return TimeConfig(config=cfg) - - -class ParamConfig(BaseModel): - type: str = "paramId" - datasetForLocal: Optional[str] = None - - -def paramConfig(t: str, ds: Optional[str] = None) -> ParamConfig: - return ParamConfig(type=t, datasetForLocal=ds) - - -class LevelConfig(BaseModel): - type: str - - -def levelConfig(t: str) -> LevelConfig: - return LevelConfig(type=t) - - -class ProcessTypes(str, Enum): - default = "default" - reforecast = "reforecast" - derivedForecast = "derivedForecast" - # Add more according to the categorization - - -class ProcessSubTypes(str, Enum): - deterministic = "deterministic" - ensemble = "ensemble" - largeEnsemble = "largeEnsemble" - # Add more according to the categorization - - -class ProcessTypeConfig(BaseModel): - type: ProcessTypes = ProcessTypes.default - subType: ProcessSubTypes = ProcessSubTypes.deterministic - - -class RandomPatternsConfig(BaseModel): - type: str = "default" - - -class ChemConfig(BaseModel): - type: str = "chemical" - - -class DirectionsFrequenciesConfig(BaseModel): - type: str = "default" - - -class SatelliteConfig(BaseModel): - type: str = "default" - - -class PeriodConfig(BaseModel): - type: str = "default" - - -class PDT(BaseModel): - templateNumber: int = 0 - - -class PDTCategoryPair(BaseModel): - category: str - value: Optional[str] - - -def pdtCatPair(cat: str, val: str): - return PDTCategoryPair(category=cat, value=val) - - -PDTCategoryDict: TypeAlias = Dict[str, str] - - -def pdtCategoryPairsToDict(pairs: List[PDTCategoryPair]) -> PDTCategoryDict: - countDict = {pair.category: 0 for pair in pairs} - for p in pairs: - countDict[p.category] = countDict[p.category] + 1 - - catMoreThanOnce = [cat for (cat, count) in countDict.items() if count > 1] - if len(catMoreThanOnce) > 0: - problematicPairs = [p for p in pairs if p.category in catMoreThanOnce] - raise ValueError( - f"The following categories appear more than once: {catMoreThanOnce} - {problematicPairs}" - ) - - return {pair.category: pair.value for pair in pairs if pair.value is not None} - - -class ProductDefinition(BaseModel): - pdt: PDT = PDT() - modelConfig: ModelConfig = ModelConfig() - timeConfig: TimeConfig = timeConfig(PointInTime()) - param: ParamConfig = ParamConfig() - processType: ProcessTypeConfig = ProcessTypeConfig() - level: Optional[LevelConfig] = None - randomPatterns: Optional[RandomPatternsConfig] = None - chemical: Optional[ChemConfig] = None - directionsFrequencies: Optional[DirectionsFrequenciesConfig] = None - periodRange: Optional[PeriodConfig] = None - satellite: Optional[SatelliteConfig] = None - - -# Section 5 -class DataRepresentation(BaseModel): - templateNumber: int = 0 - descriptiveName: str = "simple" - - -# Encode class - - -class Encode(BaseModel): - type: str = "grib2" - indicator: IndicatorSection = IndicatorSection() - identification: IdentificationSection - localUse: LocalUse = LocalUse() - grid: GridDefinition = GridDefinition() - product: ProductDefinition - dataRepres: DataRepresentation = DataRepresentation() - - -# Final rule -def nameFromEncode(encode: Encode, additionalPrefix: Optional[str] = None): - level = encode.product.level.type if encode.product.level is not None else None - wave = ( - encode.product.directionsFrequencies.type - if encode.product.directionsFrequencies is not None - else None - ) - periodRange = ( - encode.product.periodRange.type - if encode.product.periodRange is not None - else None - ) - satellite = ( - encode.product.satellite.type if encode.product.satellite is not None else None - ) - - levelWaveStr = "-".join( - [l for l in [level, wave, periodRange, satellite] if l is not None] - ) - - grid = encode.grid.shortName - process = ( - lambda pt: "-".join( - ([] if pt.type == ProcessTypes.default else [pt.type]) + [pt.subType] - ) - )(encode.product.processType) - time = encode.product.timeConfig.config.descriptiveName - packing = encode.dataRepres.descriptiveName - paramConfig = encode.product.param.type - dataset = ( - "" - if encode.product.param.datasetForLocal is None - else f"-{encode.product.param.datasetForLocal}" - ) - local = encode.localUse.templateNumber - - product = "" - if encode.identification.marsType is not None: - product += f"-{encode.identification.marsType.type}" - if encode.product.chemical is not None: - product += "-chem" - if encode.product.directionsFrequencies is not None: - product += "-wave_spec" - if encode.product.periodRange is not None: - product += "-wave_period" - if encode.product.satellite is not None: - product += "-satellite" - - pref = "" if additionalPrefix is None else f"-{additionalPrefix}" - - return f"rule{pref}-{levelWaveStr}-{grid}{product}-{process}-{time}-{packing}-{paramConfig}{dataset}-{local}" - - -class EncodeRule(BaseModel): - tag: str = "grib2" - filter: RuleFilter - encode: Encode - name: Optional[str] = None - - @model_validator(mode="after") - def set_name(self): - if self.name is None: - self.name = nameFromEncode(self.encode) - return self - - -# Emitting... - - -def toDictRepres(val): - match val: - case MatchParam(): - return { - "type": "param", - "operation": "match", - "values": [toDictRepres(v) for v in val.values], - } - case Param(): - if isinstance(val.value, str): - return quoted(val.value) - return val.value - case MatchType(): - return {"type": val.type, "operation": "match", "value": val.value} - case NotMatchType(): - return {"type": val.type, "operation": "ignore", "value": val.value} - case TypeTreshold(): - return { - "type": val.type, - "operation": val.operation, - "treshold": val.treshold, - } - case HasType(): - return {"type": val.type, "operation": "has"} - case LacksType(): - return {"type": val.type, "operation": "lacks"} - case RuleFilter(): - return toDictRepres(val.filter) - case ComposeAll(): - return { - "type": "composed", - "operation": "all", - "filters": [toDictRepres(v) for v in val.filters], - } - case Encode(): - return { - "type": val.type, - "indicator-section": toDictRepres(val.indicator), - "identification-section": toDictRepres(val.identification), - "local-use-section": toDictRepres(val.localUse), - "grid-definition-section": toDictRepres(val.grid), - "product-definition-section": toDictRepres(val.product), - "data-representation-section": toDictRepres(val.dataRepres), - } - case IndicatorSection(): - return {"template-number": val.templateNumber} - case IdentificationSection(): - return { - "template-number": val.templateNumber.templateNumber, - "origin-configurator": toDictRepres(val.origin), - "data-type-configurator": toDictRepres(val.dataType), - "reference-time-configurator": toDictRepres(val.referenceTime), - "tables-configurator": toDictRepres(val.tables), - } - case LocalUse(): - return {"template-number": val.templateNumber} - case GridDefinition(): - return {"template-number": val.templateNumber} - case ProductDefinition(): - return { - "template-number": val.pdt.templateNumber, - **toDictRepres(val.timeConfig), - "param-configurator": toDictRepres(val.param), - "model-configurator": toDictRepres(val.modelConfig), - **( - {"level-configurator": toDictRepres(val.level)} - if val.level is not None - else {} - ), - **( - {"ensemble-configurator": {"type": "default"}} - if val.processType.subType == ProcessSubTypes.ensemble - or val.processType.subType == ProcessSubTypes.largeEnsemble - else {} - ), - # **( - # {"process-configurator": {"type": "" + val.processType.type}} - # ), - **( - {"random-patterns-configurator": toDictRepres(val.randomPatterns)} - if val.randomPatterns is not None - else {} - ), - **( - {"chemistry-configurator": toDictRepres(val.chemical)} - if val.chemical is not None - else {} - ), - **( - { - "directions-frequencies-configurator": toDictRepres( - val.directionsFrequencies - ) - } - if val.directionsFrequencies is not None - else {} - ), - **( - {"period-configurator": toDictRepres(val.periodRange)} - if val.periodRange is not None - else {} - ), - **( - {"satellite-configurator": toDictRepres(val.satellite)} - if val.satellite is not None - else {} - ), - } - case DataRepresentation(): - return {"template-number": val.templateNumber} - case OriginConfig(): - return {"type": val.type, "sub-centre": val.subCentre} - case DataTypeConfig(): - return {"type": val.type} - case ReferenceTimeConfig(): - return {"type": val.type} - case TablesConfig(): - return { - "type": val.type, - **( - {} - if val.tablesVersion is None - else {"tables-version": val.tablesVersion} - ), - "local-tables-version": val.localTablesVersion, - } - case TimeConfig(): - match val.config: - case PointInTime(): - return {"point-in-time-configurator": toDictRepres(val.config)} - case TimeRange(): - return {"time-statistics-configurator": toDictRepres(val.config)} - case PointInTime(): - return {"type": val.type} - case TimeRange(): - return { - "type": val.type, - "type-of-statistical-processing": val.typeOfStatisticalProcessing, - **( - {} - if val.overallLengthOfTimeRange is None - else {"overall-length-of-timerange": val.overallLengthOfTimeRange} - ), - } - case ParamConfig(): - return { - "type": val.type, - **( - {} - if val.datasetForLocal is None - else {"dataset-for-local": val.datasetForLocal} - ), - } - case ModelConfig(): - return {"type": val.type} - case LevelConfig(): - return {"type": val.type} - case RandomPatternsConfig(): - return {"type": val.type} - case ChemConfig(): - return {"type": val.type} - case DirectionsFrequenciesConfig(): - return {"type": val.type} - case SatelliteConfig(): - return {"type": val.type} - case PeriodConfig(): - return {"type": val.type} - case EncodeRule(): - return { - "tag": val.tag, - "name": val.name, - "filter": toDictRepres(val.filter), - "encoder": toDictRepres(val.encode), - } - case _: - raise ValueError(f"toDict not specialized for {val}") - - -# Rule combination - -# Partial Sections -Section1Part: TypeAlias = Union[ - OriginConfig, - DataTypeConfig, - ReferenceTimeConfig, - TablesConfig, - MarsType, - IdentTemplateNumber, - IdentificationSection, -] - -Section4Part: TypeAlias = Union[ - PDT, - PDTCategoryPair, - TimeConfig, - PointInTime, - TimeRange, - ParamConfig, - LevelConfig, - ProcessTypeConfig, - RandomPatternsConfig, - ChemConfig, - DirectionsFrequenciesConfig, - PeriodConfig, - SatelliteConfig, -] - - -EncodePart: TypeAlias = Union[ - # Section 0 - IndicatorSection, - # Section 1 - OriginConfig, - DataTypeConfig, - ReferenceTimeConfig, - TablesConfig, - MarsType, - IdentTemplateNumber, - IdentificationSection, - # Section 2 - LocalUse, - # Section 3 - GridDefinition, - # Section 4 - PDT, - PDTCategoryPair, # Moved out of the list here because it is mapped from the configs - TimeConfig, - PointInTime, - TimeRange, - ParamConfig, - LevelConfig, - ProcessTypeConfig, - RandomPatternsConfig, - ChemConfig, - DirectionsFrequenciesConfig, - PeriodConfig, - SatelliteConfig, - ProductDefinition, - # Section 5 - DataRepresentation, -] - - -def getCrumb(typeToSearch, crumbs: [EncodePart]): - l = list(filter(lambda c: isinstance(c, typeToSearch), crumbs)) - if len(l) == 0: - return None - if len(l) > 1: - raise ValueError(f"Type {typeToSearch} exists more than once: {l}") - return l[0] - - -def withDefault(x, default): - return default if x is None else x - - -def toArgDict(argName, value): - return {} if value is None else {argName: value} - - -def mapPDTCategories(crumbs: List[EncodePart]) -> List[PDTCategoryPair]: - def mapperGen(crumbs: List[EncodePart]): - for crumb in crumbs: - match crumb: - case PointInTime(): - yield pdtCatPair("timeExtent", "pointInTime") - case TimeRange(): - yield pdtCatPair("timeExtent", "timeRange") - case ChemConfig(): - yield pdtCatPair("productCategory", "chemical") - case ProcessTypeConfig(): - if crumb.type != ProcessTypes.default: - yield pdtCatPair("processType", crumb.type) - if crumb.subType != ProcessSubTypes.deterministic: - yield pdtCatPair("processSubType", crumb.subType) - - # # Reforecast templates require ensemble information... although it may not be used - # if crumb.type == ProcessTypes.reforecast and crumb.subType == ProcessSubTypes.deterministic: - # yield pdtCatPair("processSubType", ProcessSubTypes.ensemble) - case RandomPatternsConfig(): - yield pdtCatPair( - "spatialExtent", "randomPatterns" - ) # Todo may change - case PeriodConfig(): - yield pdtCatPair("productCategory", "wave") - yield pdtCatPair("productSubCategory", "periodRange") - case DirectionsFrequenciesConfig(): - yield pdtCatPair("productCategory", "wave") - yield pdtCatPair("productSubCategory", "spectraList") - case SatelliteConfig(): - yield pdtCatPair("productCategory", "satellite") - case PDTCategoryPair(): - yield crumb - case _: - pass - - return list(mapperGen(crumbs)) - - -def buildPDT(crumbs: List[EncodePart]): - pdt = getCrumb(PDT, crumbs) - # pdtPairs = list(filter(lambda c: isinstance(c, PDTCategoryPair), crumbs)) - # if pdt is not None and len(pdtPairs) > 0: - # raise ValueError(f"PDT AND partial pdt category pairs are given: {pdt}, pairs: {pdtPairs}") - if pdt is not None: - return pdt - - pdtPairs = mapPDTCategories(crumbs) - pdtDict = pdtCategoryPairsToDict(pdtPairs) - try: - pdtNum = inferPDT(pdtDict, pdtMatcher) - return PDT(templateNumber=pdtNum) - except Exception as e: - raise Exception( - f"Can not infer pdt from dict: {pdtDict} (pairs: {pdtPairs}, crumbs: {crumbs})" - ) from e - - -def buildTimeConfig(crumbs: List[EncodePart]): - timeConfigObj = getCrumb(TimeConfig, crumbs) - timeCrumbs = list(filter(lambda c: isinstance(c, TimeConfigType), crumbs)) - if timeConfigObj is not None and len(timeCrumbs) > 0: - raise ValueError( - f"TimeConfig AND TimeConfigType are given: {timeConfigObj} - {timeCrumbs}" - ) - if timeConfigObj is not None: - return timeConfigObj - if len(timeCrumbs) > 1: - raise ValueError(f"Too many TimeConfigType are given: {timeCrumbs}") - if len(timeCrumbs) == 0: - return timeConfig(PointInTime()) - return timeConfig(timeCrumbs[0]) - - -def buildProductDefiniton(crumbs: List[EncodePart]): - productDef = getCrumb(ProductDefinition, crumbs) - pdtCrumbs = list(filter(lambda c: isinstance(c, Section4Part), crumbs)) - if productDef is not None and len(pdtCrumbs) > 0: - raise ValueError( - f"Product definition AND partial definitons are given: {productDef}, crumbs: {pdtCrumbs}" - ) - if productDef is not None: - return productDef - - pdt = None - try: - pdt = buildPDT(pdtCrumbs) - except Exception as e: - raise Exception(f"Can not build pdt with crumbs: {pdtCrumbs}") from e - - args = { - **toArgDict("pdt", pdt), - **toArgDict("timeConfig", buildTimeConfig(pdtCrumbs)), - **toArgDict("param", getCrumb(ParamConfig, pdtCrumbs)), - **toArgDict("level", getCrumb(LevelConfig, pdtCrumbs)), - **toArgDict("processType", getCrumb(ProcessTypeConfig, pdtCrumbs)), - **toArgDict("randomPatterns", getCrumb(RandomPatternsConfig, pdtCrumbs)), - **toArgDict("chemical", getCrumb(ChemConfig, pdtCrumbs)), - **toArgDict( - "directionsFrequencies", getCrumb(DirectionsFrequenciesConfig, pdtCrumbs) - ), - **toArgDict("periodRange", getCrumb(PeriodConfig, pdtCrumbs)), - **toArgDict("satellite", getCrumb(SatelliteConfig, pdtCrumbs)), - } - try: - return ProductDefinition(**args) - except Exception as e: - raise Exception(f"Can not build ProductDefiniton with args: {args}") from e - - -def buildIdentification(crumbs: List[EncodePart]): - identSection = getCrumb(IdentificationSection, crumbs) - identCrumbs = list(filter(lambda c: isinstance(c, Section1Part), crumbs)) - if identSection is not None and len(identCrumbs) > 0: - raise ValueError( - f"Identification section AND partial definitons are given: {identSection}, crumbs: {identCrumbs}" - ) - if identSection is not None: - return identSection - - args = { - **toArgDict("marsType", getCrumb(MarsType, identCrumbs)), - **toArgDict("templateNumber", getCrumb(IdentTemplateNumber, identCrumbs)), - **toArgDict("origin", getCrumb(OriginConfig, identCrumbs)), - **toArgDict("dataType", getCrumb(DataTypeConfig, identCrumbs)), - **toArgDict("referenceTime", getCrumb(ReferenceTimeConfig, identCrumbs)), - **toArgDict("tables", getCrumb(TablesConfig, identCrumbs)), - } - try: - return IdentificationSection(**args) - except Exception as e: - raise Exception(f"Can not build IdentificationSection with args: {args}") from e - - -def buildEncode(crumbs: List[EncodePart]) -> Encode: - args = None - try: - args = { - **toArgDict("indicator", getCrumb(IndicatorSection, crumbs)), - **toArgDict("identification", buildIdentification(crumbs)), - **toArgDict("localUse", getCrumb(LocalUse, crumbs)), - **toArgDict("grid", getCrumb(GridDefinition, crumbs)), - **toArgDict("product", buildProductDefiniton(crumbs)), - **toArgDict("dataRepres", getCrumb(DataRepresentation, crumbs)), - } - except Exception as e: - raise Exception(f"Can not build encode with input: {crumbs}") from e - - try: - return Encode(**args) - except Exception as e: - raise Exception(f"Can not build encode with args: {args}") from e - - -# Eventually we define partial Rules from which we perform combinations - - -class PartialRule(BaseModel): - filters: List[RuleFilter] - encode: List[EncodePart] - namePrefix: Optional[str] = None - - -def partialRule( - f: List[Union[RuleFilter, RuleFilterType]], - e: List[EncodePart], - namePrefix: Optional[str] = None, -) -> PartialRule: - return PartialRule( - filters=[ruleFilter(fi) for fi in f], encode=e, namePrefix=namePrefix - ) - - -def mergePartialRules(partialRules: List[PartialRule]): - return PartialRule( - filters=[f for pr in partialRules for f in pr.filters], - encode=[e for pr in partialRules for e in pr.encode], - namePrefix="_".join( - [pr.namePrefix for pr in partialRules if pr.namePrefix is not None] - ) - or None, - ) - - -# Declare AlternativeSet - partial rules that are exclusive to each other -AlternativeSet: TypeAlias = List[PartialRule] - - -def combinePartialRules(alternativeSets: List[AlternativeSet]): - if len(alternativeSets) == 0: - return [] - if len(alternativeSets) == 1: - return alternativeSets[0] - - # Use a reduce/foldl and list comprehension (cartesion product) - # to perform all products - def reducer(acc, rhs): - return (a + [r] for a in acc for r in rhs) - - return reduce(reducer, alternativeSets[1:], [[a] for a in alternativeSets[0]]) - - -def combineAndMergePartialRules(alternativeSets: List[AlternativeSet]): - return [mergePartialRules(pr) for pr in combinePartialRules(alternativeSets)] - - -def buildRule(prule: PartialRule): - encode = buildEncode(prule.encode) - name = None - if prule.namePrefix is not None and prule.namePrefix != "": - name = nameFromEncode(encode, additionalPrefix=prule.namePrefix) - - return EncodeRule( - tag="grib2", - filter=ruleFilter(composeAll(prule.filters)), - encode=encode, - name=name, - ) diff --git a/share/multiom/generate_knowledge/InferPDT.py b/share/multiom/generate_knowledge/InferPDT.py deleted file mode 100644 index c16663ccb..000000000 --- a/share/multiom/generate_knowledge/InferPDT.py +++ /dev/null @@ -1,108 +0,0 @@ -from pydantic import BaseModel -from typing import Union, List, Optional, TypeAlias, Dict - -# TODO pgeier remove this file - only c++ generated code is used - -from PDT import ( - categories, - categorySelectorsWithMappedPdt, - categoriesWithAllPossibleValues, - listAllCategoriesInOrder, -) - - -class FinalPDT(BaseModel): - pdt: int - - -MatchPDTType: TypeAlias = Union[FinalPDT, "MatchPDTCategory"] - - -class MatchPDTCategory(BaseModel): - category: str - subMatch: Dict[str, MatchPDTType] - default: Optional[MatchPDTType] - - -def inferPDT(catValuePairs: Dict[str, str], matcher: MatchPDTType) -> int: - match matcher: - case FinalPDT(): - return matcher.pdt - case MatchPDTCategory(): - cat = matcher.category - if cat not in catValuePairs.keys(): - if matcher.default: - return inferPDT(catValuePairs, matcher.default) - raise ValueError( - f"Category {cat} is not available in dict {catValuePairs}. Matcher {matcher}" - ) - catVal = catValuePairs[cat] - - if catVal not in matcher.subMatch.keys(): - if matcher.default: - return inferPDT(catValuePairs, matcher.default) - raise ValueError( - f"Category with value {{{cat}: {catVal}}} has no entry in sub matcher and no default is given. Possible values {list(matcher.subMatch.keys())}" - ) - - subMatch = matcher.subMatch[catVal] - return inferPDT(catValuePairs, subMatch) - - -def buildDecisionMap(subCatList, selector, mappedSelectorList) -> MatchPDTType: - if len(subCatList) == 0: - if len(mappedSelectorList) == 1: - return FinalPDT(pdt=mappedSelectorList[0][3][0]) - else: - # Should not occur, as already checked - raise ValueError( - f"buildDecisionMap: selector {selector} matches multiple or no pdts: {mappedSelectorList}" - ) - - else: - cat = subCatList[0] - allVals = categoriesWithAllPossibleValues[cat] - - valsInSelectors = set([]) - for selTuple in mappedSelectorList: - sel = selTuple[0] - valsInSelectors.add(sel[cat] if cat in sel.keys() else None) - - default = None - subMatch = {} - for val in valsInSelectors: - - def filterSelector(sel): - if val is None: - if cat not in sel.keys(): - return True - else: - return sel[cat] is None - else: - if cat not in sel.keys(): - return False - else: - return sel[cat] == val - - # Recursion on a proper selection - selectorsForVal = [s for s in mappedSelectorList if filterSelector(s[0])] - sub = buildDecisionMap( - subCatList[1:], {cat: val, **selector}, selectorsForVal - ) - - if val is None: - # If there is only 1 val and it is default, we can skip checking the whole category - if len(valsInSelectors) == 1: - return sub - else: - default = sub - else: - subMatch[val] = sub - - return MatchPDTCategory(category=cat, subMatch=subMatch, default=default) - - -pdtCategoriesHandleOrder = listAllCategoriesInOrder(categories) -pdtMatcher = buildDecisionMap( - pdtCategoriesHandleOrder, {}, categorySelectorsWithMappedPdt -) diff --git a/share/multiom/generate_knowledge/PDT.py b/share/multiom/generate_knowledge/PDT.py deleted file mode 100644 index 7e44b1d89..000000000 --- a/share/multiom/generate_knowledge/PDT.py +++ /dev/null @@ -1,708 +0,0 @@ -# import pyyaml module -import os -import yaml -import functools - -from yaml.loader import SafeLoader - - -# TODO pgeier -# Refactor: -# - Remove key checking - just assume groups of keys in PDTs -# - Use type annotiations - - -def camelToPascalCase(n): - return n[0].upper() + n[1:] - - -def extendOrAppend(l, v): - if isinstance(v, list): - l.extend(v) - else: - l.append(v) - - -# Parsing Groups and Keys - - -def evalToFlatKeys(v, groups, default=None, doExtend=True, **kwargs): - """ - Lookup groups recursively and generate a flat list - """ - if v is None: - return [] - - def extend(g, **kwargs): - if not doExtend: - return [] - - if g not in groups.keys(): - raise ValueError("{} not found in groups".format(g)) - return evalToFlatKeys( - groups[g], groups, default=None, doExtend=doExtend, **kwargs - ) - - def extendList(l, default=None, **kwargs): - res = [] - for li in l: - extendOrAppend( - res, - evalToFlatKeys( - li, groups=groups, default=default, doExtend=doExtend, **kwargs - ), - ) - return res - - if isinstance(v, list): - return extendList(v, default=default, **kwargs) - - elif isinstance(v, dict): - if "groups" in v.keys(): - return extendList(v["groups"], default="extend", **kwargs) - - elif "extend" in v.keys(): - return extend( - v["extend"], - **{ - **kwargs, - **{k: v[k] for k in (set(v.keys()).difference({"extend"}))}, - }, - ) - elif "append" in v.keys(): - if v["append"] not in kwargs.keys(): - return [] - else: - return evalToFlatKeys( - kwargs[v["append"]], groups, doExtend=doExtend, **kwargs - ) - - elif "repeatFor" in v.keys(): - return extendList(v["values"], default=None, **kwargs) - else: - raise ValueError("Unknown dict to evaluate: {}".format(str(v))) - - if default == "extend": - return extend(v, **kwargs) - else: - return v - - -def flattenGroups(g, groups, default="extend", **kwargs): - """ - Iterate groups and explicitly list all nested groups and composed types in a flat list - """ - if g is None: - return [] - - def extend(g, **kwargs): - res = [g] - if g not in groups.keys(): - raise ValueError("{} not found in groups".format(g)) - - # Add group and eval nested groups if existing - extendOrAppend(res, flattenGroups(groups[g], groups, default=None, **kwargs)) - return res - - def extendList(l, default=None, **kwargs): - res = [] - for li in l: - extendOrAppend( - res, flattenGroups(li, groups=groups, default=default, **kwargs) - ) - return res - - if isinstance(g, list): - return extendList(g, default=default, **kwargs) - - elif isinstance(g, dict): - if "groups" in g.keys(): - return extendList(g["groups"], default="extend", **kwargs) - elif "extend" in g.keys(): - return extend( - g["extend"], - **{ - **kwargs, - **{k: g[k] for k in (set(g.keys()).difference({"extend"}))}, - }, - ) - elif "append" in g.keys(): - if g["append"] not in kwargs.keys(): - return [] - else: - return flattenGroups( - kwargs[g["append"]], groups, default=None, **kwargs - ) - - elif "repeatFor" in g.keys(): - return extendList(g["values"], default=None, **kwargs) - else: - raise ValueError("Unknown dict to evaluate: {}".format(str(g))) - - if default == "extend": - return extend(g, **kwargs) - else: - return [] - - -def flattenGroupsToArcs( - fromValue, g, groups, default="extend", listNestedOnExtension=True, **kwargs -): - """ - Iterate all groups and list all connections to nested groups in a dict with keys "target" (derived/extended group) and "source" (nested/base group). - Used - """ - if g is None: - return [] - - def extend(f, g, **kwargs): - res = [{"target": f, "source": g}] - if g not in groups.keys(): - raise ValueError("{} not found in groups".format(g)) - - # Add group and eval nested groups if existing - extendOrAppend( - res, - flattenGroupsToArcs( - g, - groups[g], - groups, - default=None, - listNestedOnExtension=listNestedOnExtension, - **kwargs, - ), - ) - return res - - def extendList(f, l, default=None, **kwargs): - res = [] - for li in l: - extendOrAppend( - res, - flattenGroupsToArcs( - f, - li, - groups=groups, - default=default, - listNestedOnExtension=listNestedOnExtension, - **kwargs, - ), - ) - return res - - if isinstance(g, list): - return extendList(fromValue, g, default=default, **kwargs) - - elif isinstance(g, dict): - if "groups" in g.keys(): - return extendList(fromValue, g["groups"], default="extend", **kwargs) - elif "extend" in g.keys(): - if listNestedOnExtension: - ret = [] - extendOrAppend(ret, extend(fromValue, g["extend"], **kwargs)) - for k in set(g.keys()).difference({"extend"}): - extendOrAppend( - ret, extendList(fromValue, g[k], default=None, **kwargs) - ) - return ret - else: - return extend( - fromValue, - g["extend"], - **{ - **kwargs, - **{k: g[k] for k in (set(g.keys()).difference({"extend"}))}, - }, - ) - elif "append" in g.keys(): - if listNestedOnExtension: - return [] - - if g["append"] not in kwargs.keys(): - return [] - else: - return flattenGroupsToArcs( - fromValue, - kwargs[g["append"]], - groups, - default=None, - listNestedOnExtension=listNestedOnExtension, - **kwargs, - ) - - elif "repeatFor" in g.keys(): - return extendList(fromValue, g["values"], default=None, **kwargs) - else: - raise ValueError("Unknown dict to evaluate: {}".format(str(g))) - - if default == "extend": - return extend(fromValue, g, **kwargs) - else: - return [] - - -# Category operations - - -def valueListForCategory(c): - """ - Extract list of values from a category definition - """ - if isinstance(c, list): - return c - elif isinstance(c, dict): - if "values" in c.keys(): - return c["values"] - raise ValueError( - "valueListForCategory: no key 'values' in category dict: {}".format(c) - ) - else: - raise ValueError( - "valueListForCategory: category is no list and no dict: {}".format(c) - ) - - -def categoryValueGroupsAndSubDefinitions(entry): - """ - Extact the string value, list of groups and possible subdefinitons (or None) - from an entry in a category value list - """ - if isinstance(entry, str): - return (entry, [entry], None) - elif isinstance(entry, dict): - if len(entry) == 1: - (name, val) = next(iter(entry.items())) - # check if val is a list of groups - then name is just an alias - if isinstance(val, list): - return (name, val, None) - else: - return (name, [name], val) - elif "name" in entry.keys(): - return ( - entry["name"], - entry["groups"] - if "groups" in entry.keys() - else ([entry["name"]] if entry["name"] is not None else None), - entry["categories"] if "categories" in entry.keys() else None, - ) - else: - raise ValueError( - "categoryValueGroupsAndSubDefinitions: value dict must have exactly one mapping or the keys 'name' and 'groups' (optionally 'categories'): {}".format( - entry - ) - ) - - elif entry is None: - return (None, None, None) - raise ValueError( - "categoryValueGroupsAndSubDefinitions: value is no str, no dict and not None: {}".format( - entry - ) - ) - - -def defaultCategoryValue(v): - """ - Returns the default value (may be None) of a category definition - """ - - def defaultFromList(l): - # Check in none is contained in list - for li in l: - if li is None: - return None - - # Return first - return categoryValueGroupsAndSubDefinitions(l[0])[0] - - if isinstance(v, list): - return defaultFromList(v) - - elif isinstance(v, dict): - if "default" in v.keys(): - vd = v["default"] - if isinstance(vd, str): - return vd - else: - raise ValueError( - "defaultCategoryValue: default value is no string: {}".format(vd) - ) - if "values" in v.keys(): - return defaultFromList(v["values"]) - else: - raise ValueError( - "defaultCategoryValue: no key 'default' or 'values' in category dict: {}".format( - v - ) - ) - - -def groupsFromCategorySelection(categorySelection, categories): - """ - Evaluates a categorySelector (dictionary with category name as keys and a specific value of the corresponding category as value) - and returns a set of groups that the specific combination of categories form. - - Note: This function is not used, by maybe useful for development and interactive exlporation with python. - """ - finishedCategories = set() - groupSet = set() - exclusiveGroupSet = set() - - def resolveCategory(cName, cDef): - if cName not in finishedCategories: - finishedCategories.add(cName) - - # First resolve value - cv = None - if cName in categorySelection.keys(): - cv = categorySelection[cName] - if not isinstance(cv, str): - raise ValueError( - "groupsFromCategorySelection: mapped value in categorySelection for category {} is supposed to be a string: {}".format( - cName, cv - ) - ) - else: - cv = defaultCategoryValue(cDef) - - # Now lookup definition - for v in valueListForCategory(cDef): - (cValName, groups, subDefs) = categoryValueGroupsAndSubDefinitions(v) - if (cValName == cv) or (cValName is None and cv is None): - groupSet.update(set(groups)) - - if subDefs is not None: - for subCName, subDef in subDefs.items(): - resolveCategory(subCName, subDef) - else: - # if not (isinstance(cDef, dict) and "nonExclusive" in cDef.keys() and cDef["nonExclusive"]): - exclusiveGroupSet.update(set(groups)) - - for c, cdef in categories.items(): - resolveCategory(c, cdef) - - return {"groups": groupSet, "exclusiveGroups": exclusiveGroupSet} - - -def checkPDTSForUnqiueSetPerCategory(pdt, categories): - """ - Takes dict with pdt definitons and categories and checks that all values of a category are - exclusive to each other for the set of groups of each pdt. - """ - for pdtId, pdtVal in pdt.items(): - groupSet = pdtVal["groupSet"] - - def checkCat(cName, cDef): - alreadyMatched = None - for v in valueListForCategory(cDef): - (cValName, groups, subDefs) = categoryValueGroupsAndSubDefinitions(v) - - if groups is not None and set(groups).issubset(groupSet): - if alreadyMatched is not None: - raise ValueError( - "checkPDTSForUnqiueSetPerCategory Already matched pdt: {}, cName: {}, groups: {} - alreadyMatched: {}".format( - pdtId, cName, groups, alreadyMatched - ) - ) - alreadyMatched = set(groups) - - if subDefs is not None: - for subCName, subDef in subDefs.items(): - checkCat(subCName, subDef) - - for cName, cDef in categories.items(): - checkCat(cName, cDef) - - -def listAllCategoriesInOrder(categories): - """ - Takes a dict of categories and lists category names and subcategory names in order. - """ - - def gen(cs): - for cName, cDef in cs.items(): - yield cName - - for v in valueListForCategory(cDef): - (_, _, subDefs) = categoryValueGroupsAndSubDefinitions(v) - if subDefs is not None: - for n in gen(subDefs): - yield n - - vals = [] - for v in gen(categories): - if v not in vals: - vals.append(v) - return vals - - -def generateAllCategoryCombinations(categories, emitWithDefaultExcluded=False): - """ - Generator and yields dicts with all possible combinations of specific category -> category value mappings. - """ - - def generateForSingleCatgeory(cName, cDef): - cDefValName = defaultCategoryValue(cDef) - - valWithGroups = [ - categoryValueGroupsAndSubDefinitions(v) for v in valueListForCategory(cDef) - ] - allGroups = {g for v in valWithGroups for g in ([] if v[1] is None else v[1])} - for cValName, igroups, subDefs in valWithGroups: - # egroups = set([]) - # if not (isinstance(cDef, dict) and "nonExclusive" in cDef.keys() and cDef["nonExclusive"]): - egroups = allGroups.difference(set([]) if igroups is None else set(igroups)) - - (sel1, groups1, egroups1) = ( - {cName: cValName}, - set([] if igroups is None else igroups), - set([] if egroups is None else egroups), - ) - - if subDefs is None: - # If the value is default, also emit a selector without the value - if emitWithDefaultExcluded and ( - (cValName == cDefValName) - or (cValName is None and cDefValName is None) - ): - yield ({}, groups1, egroups1) - yield (sel1, groups1, egroups1) - else: - for sel2, groups2, egroups2 in combineCategories(subDefs): - if emitWithDefaultExcluded and ( - (cValName == cDefValName) - or (cValName is None and cDefValName is None) - ): - yield ({**sel2}, {*groups1, *groups2}, {*egroups1, *egroups2}) - yield ( - {**sel1, **sel2}, - {*groups1, *groups2}, - {*egroups1, *egroups2}, - ) - - def combineCategories(cats): - if len(cats) == 0: - yield ({}, set([]), set([])) - return - - (cName, cDef) = next(iter(cats.items())) - - for sel1, groups1, egroups1 in generateForSingleCatgeory(cName, cDef): - for sel2, groups2, egroups2 in combineCategories( - {k: v for (k, v) in cats.items() if k != cName} - ): - yield ({**sel1, **sel2}, {*groups1, *groups2}, {*egroups1, *egroups2}) - - return combineCategories(categories) - - -def generateCategoryGroupArcs(categories, valueTosubValueArcs=True): - """ - Generator and yields dicts with all possible combinations of specific category -> category value mappings. - """ - - def generateForSingleCatgeory(cName, cDef, pCat=None, pCatVal=None): - cDefValName = defaultCategoryValue(cDef) - - if pCat is not None: - yield {"source": pCat, "target": cName} - - valWithGroups = [ - categoryValueGroupsAndSubDefinitions(v) for v in valueListForCategory(cDef) - ] - for cValName, igroups, subDefs in valWithGroups: - yield {"source": cName, "target": "{}::{}".format(cName, cValName)} - if valueTosubValueArcs and pCat is not None: - yield { - "source": "{}::{}".format(pCat, pCatVal), - "target": "{}::{}".format(cName, cValName), - } - - if igroups is not None: - for g in igroups: - yield {"source": "{}::{}".format(cName, cValName), "target": g} - - if subDefs is not None: - for propagate in generateForCategories(subDefs, cName, cValName): - yield propagate - - def generateForCategories(cats, pCat=None, pCatVal=None): - for cName, cDef in cats.items(): - for propagate in generateForSingleCatgeory(cName, cDef, pCat, pCatVal): - yield propagate - - return generateForCategories(categories) - - -def pdtsMatchingGroupSet(pdt, groupSet, exclusiveGroupSet=set([])): - """ - Selects all pdt which contain all groups in groupSet and not the groups in exclusiveGroupSet. - """ - return { - pdtId: pdtVal - for (pdtId, pdtVal) in pdt.items() - if (len(set(pdtVal["groupSet"]).intersection(exclusiveGroupSet)) == 0) - and set(pdtVal["groupSet"]).issuperset(groupSet) - } - - -def pdtsWithFewestKeysMatchingGroupSet(pdt, groupSet, exclusiveGroupSet=set([])): - """ - Calls pdtsMatchingGroupSet and takes the pdt with fewest number of keys - """ - pdts = pdtsMatchingGroupSet(pdt, groupSet, exclusiveGroupSet) - if len(pdts) == 0: - return None - return next(iter(sorted(pdts.items(), key=lambda tup: len(tup[1]["keySet"])))) - - -# Check if all pdt could been matched -def checkIfAllPDTHaveAtLeastOneSelector(categorySelectorsWithMappedPdt): - mappedPdtIds = {m[3][0] for m in categorySelectorsWithMappedPdt} - allPdtIds = set(pdt.keys()) - - if mappedPdtIds != allPdtIds: - raise ValueError( - "checkIfAllPDTHaveAtLeastOneSelector: The following pdt have not been mapped from a selector: {}".format( - allPdtIds.difference(mappedPdtIds) - ) - ) - - -# Compute all mappings -def listCategorySelectorsWithMappedPdt(pdt, categories): - return list( - ( - (sel, groups, egroups, matchedPdt) - for (sel, groups, egroups, matchedPdt) in ( - ( - sel, - groups, - egroups, - pdtsWithFewestKeysMatchingGroupSet(pdt, groups, egroups), - ) - for (sel, groups, egroups) in generateAllCategoryCombinations( - categories - ) - ) - if matchedPdt is not None - ) - ) - - -# Read in Files -def readPDT(fname="input/pdt.yaml"): - pdt = None - groups = None - categories = None - with open(fname) as f: - pdt = yaml.load(f, Loader=SafeLoader) - groups = pdt["groups"] - categories = pdt["categories"] - pdt = { - k: { - **v, - "keySet": evalToFlatKeys(v["keys"], groups), - "groupSet": flattenGroups(v["groups"], groups), - "arcs": flattenGroupsToArcs( - k, v["groups"], groups, listNestedOnExtension=True - ), - } - for (k, v) in pdt["pdt"].items() - } - # print(pdt) - return (pdt, groups, categories) - - -allKeyTypes = set( - [ - "IntType", - "StringType", - "IntArrayType", - "StringArrayType", - "FloatType", - "FloatArrayType", - ] -) - - -def readKeyMappings(fname="input/keyMappings.yaml"): - keyMappings = None - keyTypes = None - with open(fname) as f: - keyMappingsYAML = yaml.load(f, Loader=SafeLoader) - keyMappings = keyMappingsYAML["keyMappings"] - keyTypes = keyMappingsYAML["keyTypes"] - return (keyMappings, keyTypes) - - -(pdt, groups, categories) = readPDT() -(keyMappings, keyTypes) = readKeyMappings() - -keyMappingsForKey = functools.reduce( - lambda acc, kTup: { - **acc, - kTup[1]: (acc[kTup[1]] + [kTup[0]] if kTup[1] in acc.keys() else [kTup[0]]), - }, - ( - (km, k) - for (km, m) in keyMappings.items() - for k in evalToFlatKeys(m, keyMappings) - ), - {}, -) - -groupDependencyCountMap = {g: 0 for g in groups.keys()} -for pdtVal, pdtDict in pdt.items(): - for g in pdtDict["groupSet"]: - groupDependencyCountMap[g] = groupDependencyCountMap[g] + 1 - -# Check pdt keys -for pdtId, pdtVal in pdt.items(): - genKeys = evalToFlatKeys(pdtVal["groups"], groups, default="extend") - pdtVal["keys"] - for l, r in zip(genKeys, evalToFlatKeys(pdtVal["keys"], groups)): - if l != r: - print("Keys not matched for pdt {}: {} != {}".format(pdtId, l, r)) - - -# Check categories -checkPDTSForUnqiueSetPerCategory(pdt, categories) - -# Compute all mappings -categorySelectorsWithMappedPdt = listCategorySelectorsWithMappedPdt(pdt, categories) - - -# Gather all (sub)categories with all possible values -categoriesWithAllPossibleValues = {} - -for s in categorySelectorsWithMappedPdt: - for k, v in s[0].items(): - if not k in categoriesWithAllPossibleValues.keys(): - categoriesWithAllPossibleValues[k] = set([]) - categoriesWithAllPossibleValues[k].add(v) - -# Explicitly check if some subcategories are not listed in a selector and add a default value None -for s in categorySelectorsWithMappedPdt: - for c, cv in categoriesWithAllPossibleValues.items(): - if c not in s[0].keys(): - cv.add(None) - - -checkIfAllPDTHaveAtLeastOneSelector(categorySelectorsWithMappedPdt) - -for sel, igroups, egroups, pdtItem in categorySelectorsWithMappedPdt: - (pdtId, _) = pdtItem - if "categorySelectors" not in pdt[pdtId].keys(): - pdt[pdtId]["categorySelectors"] = [] - pdt[pdtId]["categorySelectors"].append((sel, igroups, egroups)) - - -# Optionall check if all PDT have exacly one selector - this depends if default values have been expanded -for pdtId, pdtVal in pdt.items(): - if len(pdtVal["categorySelectors"]) > 1: - raise ValueError( - "pdt {} hase multiple categorySelectors: {}".format( - pId, pdtVal["categorySelectors"] - ) - ) diff --git a/share/multiom/generate_knowledge/compare_rules.py b/share/multiom/generate_knowledge/compare_rules.py deleted file mode 100644 index 6131b053f..000000000 --- a/share/multiom/generate_knowledge/compare_rules.py +++ /dev/null @@ -1,242 +0,0 @@ -import os -import glob -import yaml -from enum import Enum -from typing import Union, List, Optional, Annotated, TypeAlias, Dict, Tuple -from pydantic import ( - BaseModel, - Field, - ValidationError, - validator, - AfterValidator, - model_validator, -) - - -class YAMLRule(BaseModel): - fname: str - rule: Dict - - -RuleList: TypeAlias = List[YAMLRule] - - -class ComparedRuleLists(BaseModel): - unmatched: Tuple[RuleList, RuleList] = ([], []) - matchedFilters: List[Tuple[YAMLRule, YAMLRule, List]] = [] - matchAndCompareEqual: List[Tuple[YAMLRule, YAMLRule, List]] = [] - - -FILTER_MAP = {} - -ANOFFSET_HAS = {"type": "anoffset", "operation": "has"} -ANOFFSET_HAS_ALT = { - "type": "composed", - "operation": "any", - "filters": [ - { - "type": "stream", - "operation": "match", - "values": ["lwda", "lwwv", "elda", "ewla"], - }, - { - "type": "composed", - "operation": "all", - "filters": [ - {"type": "stream", "operation": "match", "values": ["efas", "wfas"]}, - {"type": "type", "operation": "match", "values": ["sfo", "fu", "go"]}, - ], - }, - ], -} -FILTER_MAP[yaml.dump(ANOFFSET_HAS_ALT)] = ANOFFSET_HAS - - -IS_ENSEMBLE = {"type": "number", "operation": "has"} -IS_ENSEMBLE_ALT = {"type": "is-ensemble"} -FILTER_MAP[yaml.dump(IS_ENSEMBLE_ALT)] = IS_ENSEMBLE - -IS_NO_ENSEMBLE = {"type": "number", "operation": "lacks"} -IS_NO_ENSEMBLE_ALT = {"type": "is-ensemble", "negate": True} -FILTER_MAP[yaml.dump(IS_NO_ENSEMBLE_ALT)] = IS_NO_ENSEMBLE - -IS_CHEMICAL = { - "type": "composed", - "operation": "all", - "filters": [ - {"type": "chem", "operation": "has"}, - {"type": "wavelength", "operation": "lacks"}, - {"type": "chem", "operation": "lower-than", "treshold": 900}, - ], -} -IS_CHEMICAL_ALT = {"type": "is-chemical"} -FILTER_MAP[yaml.dump(IS_CHEMICAL_ALT)] = IS_CHEMICAL - -IS_AEROSOL = { - "type": "composed", - "operation": "all", - "filters": [ - {"type": "chem", "operation": "has"}, - {"type": "wavelength", "operation": "lacks"}, - {"type": "chem", "operation": "greater-equal", "treshold": 900}, - ], -} -IS_AEROSOL_ALT = {"type": "is-aerosol"} -FILTER_MAP[yaml.dump(IS_AEROSOL_ALT)] = IS_AEROSOL - -IS_OPTICAL = { - "type": "composed", - "operation": "all", - "filters": [ - {"type": "chem", "operation": "lacks"}, - {"type": "wavelength", "operation": "has"}, - ], -} -IS_OPTICAL_ALT = {"type": "is-optical"} -FILTER_MAP[yaml.dump(IS_OPTICAL_ALT)] = IS_OPTICAL - -IS_CHEMICAL_OPTICAL = { - "type": "composed", - "operation": "all", - "filters": [ - {"type": "chem", "operation": "has"}, - {"type": "wavelength", "operation": "has"}, - ], -} -IS_CHEMICAL_OPTICAL_ALT = {"type": "is-chemical-optical"} -FILTER_MAP[yaml.dump(IS_CHEMICAL_OPTICAL_ALT)] = IS_CHEMICAL_OPTICAL - -# def compareFilter(lhs, rhs): -# if lhs == rhs: -# return True - -# def mapFilterMaybe(filter): -# filtDump = yaml.dump(filter) -# return yaml.dump(FILTER_MAP[filtDump] if filtDump in FILTER_MAP.keys() else filter) - -# return mapFilterMaybe(lhs) == mapFilterMaybe(rhs) - - -def singleFilterToId(filter): - filtDump = yaml.dump(filter) - return yaml.dump(FILTER_MAP[filtDump] if filtDump in FILTER_MAP.keys() else filter) - - -def filterListToId(filterList): - return yaml.dump(sorted([singleFilterToId(f) for f in filterList])) - - -def filterToId(filter): - if filter.get("type") == "composed" and "filters" in filter.keys(): - if not isinstance(filter["filters"], List): - raise ValueError(f'Expected a list for "filters": {filter}') - return filterListToId(filter["filters"]) - else: - return singleFilterToId(filter) - - -# def compareFilterLists(llhs, lrhs): -# if len(llhs) != len(lrhs): -# return False - -# def mapFilter(filter): -# filtDump = yaml.dump(filter) -# return yaml.dump(FILTER_MAP[filtDump] if filtDump in FILTER_MAP.keys() else filter) - -# return sorted([mapFilter(f) for f in llhs]) == sorted([mapFilter(f) for f in lrhs]) - - -def diffDict(d1, d2, level="root"): - if isinstance(d1, dict) and isinstance(d2, dict): - if d1.keys() != d2.keys(): - s1 = set(d1.keys()) - s2 = set(d2.keys()) - yield (f"{level:<20}", f"{s1-s2} - {s2-s1}") - common_keys = s1 & s2 - else: - common_keys = set(d1.keys()) - - for k in common_keys: - for y in diffDict(d1[k], d2[k], level="{}.{}".format(level, k)): - yield y - - elif isinstance(d1, list) and isinstance(d2, list): - if len(d1) != len(d2): - yield (f"{level:<20}", f"len1={len(d1)}; len2={len(d2)}") - common_len = min(len(d1), len(d2)) - - for i in range(common_len): - for y in diffDict(d1[i], d2[i], level="{}[{}]".format(level, i)): - yield y - - else: - if d1 != d2: - yield (f"{level:<20}", f"{d1} != {d2}") - - -def diffRuleEncoder(d1, d2): - return list(diffDict(d1.rule["encoder"], d2.rule["encoder"])) - - -def compareRules(lhs: RuleList, rhs: RuleList) -> ComparedRuleLists: - res = ComparedRuleLists() - - lhsDict = {filterToId(rule.rule["filter"]): rule for rule in lhs} - rhsDict = {filterToId(rule.rule["filter"]): rule for rule in rhs} - - sameKeys = set(lhsDict.keys()).intersection(set(rhsDict.keys())) - unmatchedLhsKeys = set(lhsDict.keys()).difference(set(rhsDict.keys())) - unmatchedRhsKeys = set(rhsDict.keys()).difference(set(lhsDict.keys())) - - res.unmatched[0].extend([lhsDict[k] for k in unmatchedLhsKeys]) - res.unmatched[1].extend([rhsDict[k] for k in unmatchedRhsKeys]) - - for k in sameKeys: - if "encoder" not in lhsDict[k].rule.keys(): - raise ValueError(f'No key "encoder" in lhs dict {lhsDict[k]}') - if "encoder" not in rhsDict[k].rule.keys(): - raise ValueError(f'No key "encoder" in rhs dict {rhsDict[k]}') - - if lhsDict[k].rule["encoder"] == rhsDict[k].rule["encoder"]: - res.matchAndCompareEqual.append( - (lhsDict[k], rhsDict[k], diffRuleEncoder(lhsDict[k], rhsDict[k])) - ) - else: - res.matchedFilters.append( - (lhsDict[k], rhsDict[k], diffRuleEncoder(lhsDict[k], rhsDict[k])) - ) - - return res - - -def loadYAMLAsRule(basePath): - files = glob.glob(basePath + "/**/rule-*.yaml", recursive=True) - rules = [] - for fname in files: - with open(fname, "r") as f: - rules.append(YAMLRule(fname=fname, rule=yaml.load(f, yaml.SafeLoader))) - return rules - - -def compare(path1=None, path2=None): - P1 = "../knowledge/49r2v9/encodings/" if path1 is None else path1 - P2 = "./test_output/" if path2 is None else path2 - - rule1 = loadYAMLAsRule(P1) - rule2 = loadYAMLAsRule(P2) - - return compareRules(rule1, rule2) - - -def main(): - pass - - -if __name__ == "__main__": - main() - -P1 = "../knowledge/49r2v9/encodings/" -P2 = "./test_output/" - -rule1 = loadYAMLAsRule(P1) -rule2 = loadYAMLAsRule(P2) diff --git a/share/multiom/generate_knowledge/generate_encoding.py b/share/multiom/generate_knowledge/generate_encoding.py deleted file mode 100644 index 35e5c7164..000000000 --- a/share/multiom/generate_knowledge/generate_encoding.py +++ /dev/null @@ -1,1722 +0,0 @@ -import pathlib -import os -import shutil -from typing import List, Dict, Tuple -from pydantic import ( - BaseModel, -) -from GenerateEncoding import ( - toYAML, - toDictRepres, - partialRule, - combinePartialRules, - combineAndMergePartialRules, - mergePartialRules, - buildRule, - matchType, - notMatchType, - matchParam, - pdtCatPair, - typeGE, - typeGT, - typeLE, - typeLT, - PointInTime, - RuleFilter, - HasType, - LacksType, - ComposeAll, - TimeRange, - levelConfig, - paramConfig, - ParamConfig, - ProcessTypeConfig, - ProcessTypes, - ProcessSubTypes, - RandomPatternsConfig, - TimeConfig, - TablesConfig, - DirectionsFrequenciesConfig, - SatelliteConfig, - hasType, - lacksType, - matchType, - marsType, - IdentTemplateNumber, - gridDefinition, - localUse, - ChemConfig, - PeriodConfig, - DataRepresentation, - EncodeRule, - composeAll, - ComposeAll, - MatchType, - NotMatchType, -) - -# Helpers -isChemical = composeAll([hasType("chem"), lacksType("wavelength"), typeLT("chem", 900)]) -isAerosol = composeAll([hasType("chem"), lacksType("wavelength"), typeGE("chem", 900)]) -isOptical = composeAll([lacksType("chem"), hasType("wavelength")]) -isChemicalOptical = composeAll([hasType("chem"), hasType("wavelength")]) - -# - - -TYPES = [ - # partialRule( - # [matchType("type", "forecast")], - # [marsType("fc"), IdentTemplateNumber(templateNumber=0)], - # ), - # partialRule( - # [matchType("type", "analysis")], - # [marsType("an"), IdentTemplateNumber(templateNumber=0)], - # ), - partialRule( - [], - [IdentTemplateNumber(templateNumber=0)], - ), -] - -GRIDS = [ - partialRule([matchType("repres", "gaussian-grid")], [gridDefinition(40, "gg")]) -] - -GRIDS_SH = [ - partialRule( - [matchType("repres", "spherical-harmonics")], [gridDefinition(50, "complex")] - ) -] - -# Class d1 is hacked - we don't expect to have conditions on other classes. Also the local template numbers are hacked in the encoders -LOCALSECTION = [ - partialRule( - [lacksType("anoffset"), notMatchType("class", "d1"), lacksType("method")], - [localUse(1)], - ), - partialRule( - [lacksType("anoffset"), notMatchType("class", "d1"), hasType("method")], - [localUse(15)], - ), - partialRule([hasType("anoffset"), notMatchType("class", "d1")], [localUse(36)]), - partialRule([lacksType("anoffset"), matchType("class", "d1")], [localUse(1001)]), - partialRule([hasType("anoffset"), matchType("class", "d1")], [localUse(1036)]), -] - -PROCESSTYPES = [ - partialRule([lacksType("number"), lacksType("hdate")], []), - partialRule( - [hasType("number"), lacksType("hdate")], - [ProcessTypeConfig(subType=ProcessSubTypes.ensemble)], - ), - partialRule( - [hasType("number"), hasType("hdate")], - [ - ProcessTypeConfig( - type=ProcessTypes.reforecast, subType=ProcessSubTypes.ensemble - ) - ], - ), -] - -PROCESSTYPES_AL = [ - partialRule( - [hasType("number")], [ProcessTypeConfig(subType=ProcessSubTypes.largeEnsemble)] - ), -] - - -# SFC - -PARAM_LEVTYPE_SFC = [ - # cloudbase - partialRule( - [matchType("levtype", "sfc"), matchParam([228023])], - [PointInTime(), levelConfig("cloudBase")], - ), - # entireAtmosphere - partialRule( - [ - matchType("levtype", "sfc"), - matchParam( - [ - 59, - "78:79", - "136:137", - 164, - 206, - "162059:162063", - "162071:162072", - 162093, - 228044, - 228050, - 228052, - "228088:228090", - 228164, - 260132, - ] - ), - ], - [PointInTime(), levelConfig("entireAtmosphere")], - ), - # entireLake - partialRule( - [matchType("levtype", "sfc"), matchParam([228007, 228011])], - [PointInTime(), levelConfig("entireLake")], - ), - # heightAboveGround - statistical - partialRule( - [matchType("levtype", "sfc"), matchParam([121])], - [ - levelConfig("heightAboveGroundAt2m"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="max", - overallLengthOfTimeRange="6h", - descriptiveName="max-over-last-6h", - ), - ], - ), - partialRule( - [matchType("levtype", "sfc"), matchParam([122])], - [ - levelConfig("heightAboveGroundAt2m"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="min", - overallLengthOfTimeRange="6h", - descriptiveName="min-over-last-6h", - ), - ], - ), - partialRule( - [matchType("levtype", "sfc"), matchParam([201, 237167])], - [ - levelConfig("heightAboveGroundAt2m"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="max", - descriptiveName="max-since-last-pp", - ), - ], - ), - partialRule( - [matchType("levtype", "sfc"), matchParam([202, 238167])], - [ - levelConfig("heightAboveGroundAt2m"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="min", - descriptiveName="min-since-last-pp", - ), - ], - ), - partialRule( - [matchType("levtype", "sfc"), matchParam([123])], - [ - levelConfig("heightAboveGroundAt10m"), - paramConfig("paramIdECMF"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="max", - overallLengthOfTimeRange="6h", - descriptiveName="max-over-last-6h", - ), - ], - ), - partialRule( - [matchType("levtype", "sfc"), matchParam([228028])], - [ - levelConfig("heightAboveGroundAt10m"), - paramConfig("paramIdECMF"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="max", - overallLengthOfTimeRange="3h", - descriptiveName="max-over-last-3h", - ), - ], - ), - partialRule( - [matchType("levtype", "sfc"), matchParam([49, 237207, 237318])], - [ - levelConfig("heightAboveGroundAt10m"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="max", - descriptiveName="max-since-last-pp", - ), - ], - ), - partialRule( - [ - matchType("levtype", "sfc"), - matchParam([235087, 235088, 235136, 235137, 235288, 235383]), - ], - [ - levelConfig("entireAtmosphere"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="avg-since-last-pp-entireAtmosphere", - ), - ], - ), - partialRule( - [matchType("levtype", "sfc"), matchParam([228004, 235168])], - [ - levelConfig("heightAboveGroundAt2m"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="avg-since-last-pp-heightAboveGroundAt2m", - ), - ], - ), - partialRule( - [matchType("levtype", "sfc"), matchParam([228005, 235165, 235166])], - [ - levelConfig("heightAboveGroundAt10m"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="avg-since-last-pp-heightAboveGroundAt10m", - ), - ], - ), - partialRule( - [matchType("levtype", "sfc"), matchParam([235151])], - [ - levelConfig("meanSea"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="avg-since-last-pp-meanSea", - ), - ], - ), - partialRule( - [ - matchType("levtype", "sfc"), - matchParam([235039, 235040, 235049, 235050, 235053]), - ], - [ - levelConfig("nominalTop"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="avg-since-last-pp-nominalTop", - ), - ], - ), - partialRule( - [ - matchType("levtype", "sfc"), - matchParam( - [ - 235020, - 235021, - 235031, - "235033:235038", - "235041:235043", - 235051, - 235052, - 235055, - 235078, - 235079, - 235134, - 235283, - ] - ), - ], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="avg-since-last-pp-surface", - ), - ], - ), - # heightAboveGround - point in time - partialRule( - [ - matchType("levtype", "sfc"), - matchParam([129172]), - ], - [PointInTime(), levelConfig("heightAboveGround")], - ), - # heightAboveGroundAt10m - point in time - partialRule( - [ - matchType("levtype", "sfc"), - matchParam(["165:166", 207, 228029, "228131:228132", 260260]), - ], - [PointInTime(), levelConfig("heightAboveGroundAt10m")], - ), - # heightAboveGroundAt2m - point in time - partialRule( - [ - matchType("levtype", "sfc"), - matchParam(["167:168", 174096, 228037, 260242]), - ], - [PointInTime(), levelConfig("heightAboveGroundAt2m")], - ), - # heightAboveSeaAt10m - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam([140245, 140249, 140233])], - [PointInTime(), levelConfig("heightAboveSeaAt10m")], - ), - # highCloudLayer - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam([3075])], - [PointInTime(), levelConfig("highCloudLayer")], - ), - # mediumCloudLayer - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam([3074])], - [PointInTime(), levelConfig("mediumCloudLayer")], - ), - # lowCloudLayer - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam([3073])], - [PointInTime(), levelConfig("lowCloudLayer")], - ), - # iceLayerOnWater - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam([228014])], - [PointInTime(), levelConfig("iceLayerOnWater")], - ), - # iceTopOnWater - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam([228013])], - [PointInTime(), levelConfig("iceTopOnWater")], - ), - # lakeBottom - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam([228010])], - [PointInTime(), levelConfig("lakeBottom")], - ), - # meanSea - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam([151])], - [PointInTime(), levelConfig("meanSea")], - ), - # depthBelowSeaLayer - point in time - partialRule( - [ - matchType("levtype", "sfc"), - matchParam([262118]), - ], - [PointInTime(), levelConfig("depthBelowSeaLayer")], - ), - # mixedLayerParcel - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam(["228231:228234"])], - [PointInTime(), levelConfig("mixedLayerParcel")], - ), - # mixingLayer - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam(["228008:228009"])], - [PointInTime(), levelConfig("mixingLayer")], - ), - # mostUnstableParcel - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam(["228235:228237"])], - [PointInTime(), levelConfig("mostUnstableParcel")], - ), - # nominalTop - accumul since beginning - partialRule( - [matchType("levtype", "sfc"), matchParam(["178:179", "208:209", 212])], - [ - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="accumul", - encodeStepZero=True, - descriptiveName="accum-since-last-pp-nominalTop", - ), - levelConfig("nominalTop"), - ], - ), - # nominalTop - time-mean - partialRule( - [matchType("levtype", "sfc"), matchParam([235039, 235040])], - [ - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="average-since-last-pp", - ), - levelConfig("nominalTop"), - ], - ), - # tropopause - point in time - partialRule( - [matchType("levtype", "sfc"), matchParam([228045])], - [PointInTime(), levelConfig("tropopause")], - ), - # surface - chem - partialRule( - [ - matchType("levtype", "sfc"), - matchParam(["228080:228082", "233032:233035", "235062:235064"]), - isChemical, - ], - [ - levelConfig("surface"), - paramConfig("paramId"), - ChemConfig(), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="accumul", - encodeStepZero=True, - descriptiveName="accum-since-last-pp-surface", - ), - TablesConfig(type="custom", localTablesVersion=0, tablesVersion=30), - ], - ), - # surface - since beginning - partialRule( - [ - matchType("levtype", "sfc"), - matchParam( - [ - 8, - 9, - 20, - 44, - 45, - 47, - 50, - 57, - 58, - "142:147", - 169, - "175:177", - "180:182", - 189, - "195:197", - 205, - "210:211", - 213, - 228, - 239, - 240, - 3062, - 3099, - "162100:162113", - "222001:222256", - 228021, - 228022, - 228129, - 228130, - 228143, - 228144, - 228216, - 228228, - 228251, - 231001, - 231002, - 231003, - 231005, - 231010, - 231012, - 231057, - 231058, - "233000:233031", - 260259, - ] - ), - ], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="accumul", - encodeStepZero=True, - descriptiveName="accum-since-last-pp-surface", - ), - ], - ), - # surface - average over last 1h - partialRule( - [matchType("levtype", "sfc"), matchParam([228051, 228053])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="average", - overallLengthOfTimeRange="1h", - descriptiveName="average-over-last-1h", - ), - ], - ), - # surface - average over last 3h - partialRule( - [matchType("levtype", "sfc"), matchParam([228057, 228059])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="average", - overallLengthOfTimeRange="3h", - descriptiveName="average-over-last-3h", - ), - ], - ), - # surface - average over last 6h - partialRule( - [matchType("levtype", "sfc"), matchParam([228058, 228060])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="average", - overallLengthOfTimeRange="6h", - descriptiveName="average-over-last-6h", - ), - ], - ), - # surface - max over last 3h - paramIdECMF - partialRule( - [matchType("levtype", "sfc"), matchParam([228026])], - [ - levelConfig("surface"), - paramConfig("paramIdECMF"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="max", - overallLengthOfTimeRange="3h", - descriptiveName="max-over-last-3h", - ), - ], - ), - # surface - max over last 3h - partialRule( - [matchType("levtype", "sfc"), matchParam([228222])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="max", - overallLengthOfTimeRange="3h", - descriptiveName="max-over-last-3h", - ), - ], - ), - # surface - max over last 6h - partialRule( - [matchType("levtype", "sfc"), matchParam([228224, 228035, 228036])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="max", - overallLengthOfTimeRange="6h", - descriptiveName="max-over-last-6h", - ), - ], - ), - # surface - min over last 3h - paramIdECMF - partialRule( - [matchType("levtype", "sfc"), matchParam([228027])], - [ - levelConfig("surface"), - paramConfig("paramIdECMF"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="min", - overallLengthOfTimeRange="3h", - descriptiveName="min-over-last-3h", - ), - ], - ), - # surface - min over last 3h - partialRule( - [matchType("levtype", "sfc"), matchParam([228223])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="min", - overallLengthOfTimeRange="3h", - descriptiveName="min-over-last-3h", - ), - ], - ), - # surface - min over last 6h - partialRule( - [matchType("levtype", "sfc"), matchParam([228225])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="min", - overallLengthOfTimeRange="6h", - descriptiveName="min-over-last-6h", - ), - ], - ), - # surface - time-mean - partialRule( - [matchType("levtype", "sfc"), matchParam(["235033:235038", 235189, 235326])], - [ - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="average-since-last-pp", - ), - levelConfig("surface"), - ], - ), - # TODO - paramID is duplacted here ? - # surface - min over last 3h - # partialRule( - # [matchType("levtype", "sfc"), matchParam([228027])], - # [ - # levelConfig("surface"), - # paramConfig("paramId"), - # TimeRange( - # type="fixed-timerange", - # typeOfStatisticalProcessing="min", - # overallLengthOfTimeRange="3h", - # descriptiveName="min-over-last-3h", - # ), - # ], - # ), - # surface - mode over last 1h - partialRule( - [matchType("levtype", "sfc"), matchParam([260320])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="mode", - overallLengthOfTimeRange="1h", - descriptiveName="mode-over-last-1h", - ), - ], - ), - # surface - mode over last 3h - partialRule( - [matchType("levtype", "sfc"), matchParam([260321])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="mode", - overallLengthOfTimeRange="3h", - descriptiveName="mode-over-last-3h", - ), - ], - ), - # surface - mode over last 6h - partialRule( - [matchType("levtype", "sfc"), matchParam([260339])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="mode", - overallLengthOfTimeRange="6h", - descriptiveName="mode-over-last-6h", - ), - ], - ), - # surface -- severity since last pp - partialRule( - [matchType("levtype", "sfc"), matchParam([260683])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="mode", - descriptiveName="mode-since-last-pp", - ), - ], - ), - # surface - severity over last 1h - partialRule( - [matchType("levtype", "sfc"), matchParam([260318])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="severity", - overallLengthOfTimeRange="1h", - descriptiveName="severity-over-last-1h", - ), - ], - ), - # surface - severity over last 3h - partialRule( - [matchType("levtype", "sfc"), matchParam([260319])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="severity", - overallLengthOfTimeRange="3h", - descriptiveName="severity-over-last-3h", - ), - ], - ), - # surface - severity over last 6h - partialRule( - [matchType("levtype", "sfc"), matchParam([260338])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="fixed-timerange", - typeOfStatisticalProcessing="severity", - overallLengthOfTimeRange="6h", - descriptiveName="severity-over-last-6h", - ), - ], - ), - # surface -- severity since last pp - partialRule( - [matchType("levtype", "sfc"), matchParam([260682])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="severity", - descriptiveName="severity-since-last-pp", - ), - ], - ), - # surface - instant - partialRule( - [ - matchType("levtype", "sfc"), - matchParam( - [ - "15:18", - "26:32", - 33, - "34:43", - "66:67", - 74, - 129, - 134, - 139, - 141, - 148, - 159, - "160:163", - 170, - "172:174", - "186:188", - 198, - "229:232", - "234:236", - 238, - "243:245", - 3020, - 3067, - 160198, - 200199, - 210200, - 210201, - 210202, - 228003, - 228012, - "210186:210191", - 210262, - 210263, - 210264, - "228015:228020", - 228024, - 228032, - "228046:228048", - 228141, - "228217:228221", - 260004, - 260005, - 260015, - 260038, - 260048, - 260109, - 260121, - 260123, - 260255, - 260289, - 260509, - 260688, - 261001, - 261002, - 261014, - 261015, - 261016, - 261018, - 262000, - 262100, - 262139, - 262140, - 262144, - 262124, - ] - ), - ], - [PointInTime(), levelConfig("surface"), paramConfig("paramId")], - ), - # surface - instant - chem - partialRule( - [isChemical, matchType("levtype", "sfc"), matchParam(["228083:228085"])], - [ - PointInTime(), - levelConfig("surface"), - paramConfig("paramId"), - ChemConfig(), - ], - ), - # surface - instant - wam_int - partialRule( - [ - matchType("levtype", "sfc"), - matchParam( - [ - "140098:140105", - "140112:140113", - "140121:140129", - "140131:140134", - "140207:140209", - "140211:140212", - "140214:140232", - "140234:140239", - 140244, - "140252:140254", - ] - ), - ], - [PointInTime(), levelConfig("surface"), paramConfig("paramId")], - namePrefix="wam_int", - ), - # surface - instant - wam_period - partialRule( - [matchType("levtype", "sfc"), matchParam(["140114:140120"])], - [PointInTime(), levelConfig("surface"), paramConfig("paramId"), PeriodConfig()], - namePrefix="wam_period", - ), - # surface - max since last pp - partialRule( - [ - matchType("levtype", "sfc"), - matchParam([228226, 237013, 237055, 237117, 237321]), - ], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="max", - descriptiveName="max-since-last-pp", - ), - ], - # namePrefix="max_since_last_pp", - ), - # surface - min since last pp - partialRule( - [matchType("levtype", "sfc"), matchParam([228227, 238055, 238013])], - [ - levelConfig("surface"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="min", - descriptiveName="min-since-last-pp", - ), - ], - # namePrefix="min_since_last_pp", - ), - # sfc wam spec instant - partialRule( - [matchType("levtype", "sfc"), matchParam([140251])], - [PointInTime(), paramConfig("paramId"), DirectionsFrequenciesConfig()], - ), - # isothermal - partialRule( - [matchType("levtype", "sfc"), matchParam([262104])], - [ - PointInTime(), - levelConfig("isothermal"), - ], - ), -] - - -# HL - -PARAM_LEVTYPE_HL = [ - partialRule( - [ - matchType("levtype", "hl"), - matchParam([10, 54, 130, 131, 132, 157, 246, 247, 3031]), - ], - [ - PointInTime(), - levelConfig("heightAboveGround"), - paramConfig("paramId"), - ], - namePrefix="hl", - ), - partialRule( - [matchType("levtype", "hl"), matchParam([235131, 235132])], - [ - levelConfig("heightAboveGround"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="avg-since-last-pp", - ), - ], - ), -] - - -# ML - -PARAM_LEVTYPE_ML = [ - partialRule( - [ - matchType("levtype", "ml"), - matchParam(["75:76", 133, 203, "246:248", "260290"]), - ], - [PointInTime(), levelConfig("hybrid"), paramConfig("paramId")], - ), - partialRule( - [matchType("levtype", "ml"), matchParam(["162100:162113"])], - [ - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="accumul", - encodeStepZero=True, - descriptiveName="accum-since-last-pp-hybrid", - ), - levelConfig("hybrid"), - paramConfig("paramId"), - ], - ), -] - -PARAM_LEVTYPE_ML_SH = [ - partialRule( - [ - matchType("levtype", "ml"), - matchParam([77, 129, "130:132", 135, 138, 152, 155]), - ], - [PointInTime(), levelConfig("hybrid"), paramConfig("paramId")], - ), -] - - -# PL - -PL_LEVEL_CONFIGS = [ - partialRule( - [typeGE("levelist", 100)], - [levelConfig("isobaricInhPa")], - ), - partialRule( - [typeLT("levelist", 100)], - [levelConfig("isobaricInPa")], - ), -] - -PARAM_LEVTYPE_PL = combineAndMergePartialRules( - [ - PL_LEVEL_CONFIGS, - [ - partialRule( - [ - matchType("levtype", "pl"), - matchParam([60, "75:76", "129:135", 203, "246:248", 157, 260290]), - ], - [PointInTime(), paramConfig("paramId")], - ), - partialRule( - [ - matchType("levtype", "pl"), - matchParam([235100, "235129:235133", 235135, 235157, 235246]), - ], - [ - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="avg-since-last-pp", - ), - ], - ), - ], - ] -) - -PARAM_LEVTYPE_PL_SH = combineAndMergePartialRules( - [ - PL_LEVEL_CONFIGS, - [ - partialRule( - [ - matchType("levtype", "pl"), - matchParam([1, 2, "129:135", 138, 152, 155, 157]), - ], - [PointInTime(), paramConfig("paramId")], - ), - ], - ] -) - - -# # PT -# # TODO discuss - in era6 it contains typeOfStatisticalProcessing 0 (average), for WMO not - -PARAM_LEVTYPE_PT = [ - partialRule( - [ - matchType("levtype", "pt"), - matchParam([53, 54, 60, 131, 132, 133, 138, 155, 203]), - ], - [ - levelConfig("theta"), - paramConfig("paramId"), - PointInTime(), - ], - ), - partialRule( - [matchType("levtype", "pt"), matchParam([235203])], - [ - levelConfig("theta"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="average", - ), - ], - ), - partialRule( - [matchType("levtype", "pt"), matchParam([237203])], - [ - levelConfig("theta"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="max", - descriptiveName="max", - ), - ], - ), - partialRule( - [matchType("levtype", "pt"), matchParam([238203])], - [ - levelConfig("theta"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="min", - descriptiveName="min", - ), - ], - ), - partialRule( - [matchType("levtype", "pt"), matchParam([239203])], - [ - levelConfig("theta"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="stddev", - descriptiveName="std", - ), - ], - ), -] - -PARAM_LEVTYPE_PT_SH = [ - partialRule( - [matchType("levtype", "pt"), matchParam([53, 54, 131, 132, 133, 138, 155])], - [PointInTime(), levelConfig("theta"), paramConfig("paramId")], - ), -] - -PARAM_LEVTYPE_PV = [ - partialRule( - [matchType("levtype", "pv"), matchParam([3, 54, 129, 131, 132, 133, 203])], - [PointInTime(), levelConfig("potentialVorticity"), paramConfig("paramId")], - ), -] - -PARAM_LEVTYPE_PV_SH = [ - partialRule( - [matchType("levtype", "pv"), matchParam([3, 54, 129])], - [PointInTime(), levelConfig("potentialVorticity"), paramConfig("paramId")], - ), -] - -PARAM_LEVTYPE_AL = [ - partialRule( - [matchType("levtype", "al"), matchParam(["213101:213160"])], - [ - levelConfig("abstractSingleLevel"), - paramConfig("paramId"), - PointInTime(), - RandomPatternsConfig(), # this may change - ], - ), -] - - -# SOIL - -PARAM_LEVTYPE_SOL = [ - partialRule( - [matchType("levtype", "sol"), matchParam([262000, 262024])], - [PointInTime(), levelConfig("seaIceLayer"), paramConfig("paramId")], - ), - partialRule( - [matchType("levtype", "sol"), matchParam([33, 74, 238, 228038, 228141])], - [PointInTime(), levelConfig("snowLayer"), paramConfig("paramId")], - ), - partialRule( - [matchType("levtype", "sol"), matchParam([260360, 260199, 183])], - [PointInTime(), levelConfig("soilLayer"), paramConfig("paramId")], - ), - partialRule( - [matchType("levtype", "sol"), matchParam([235077])], - [ - levelConfig("soilLayer"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="avg-since-last-pp-soilLayer", - ), - ], - ), - partialRule( - [matchType("levtype", "sol"), matchParam([235078])], - [ - levelConfig("snowLayer"), - paramConfig("paramId"), - TimeRange( - type="since-last-post-processing-step", - typeOfStatisticalProcessing="average", - descriptiveName="avg-since-last-pp-snow", - ), - ], - ), -] - - -# OCEAN - -PARAM_LEVTYPE_O2D = [ - # TODO - ClimateDT Phase 2 - # partialRule( - # [matchType("levtype", "o2d"), matchParam([263121, 263122])], - # [ - # levelConfig("depthBelowSeaLayer"), - # paramConfig("paramId"), - # TimeRange( - # type="since-last-post-processing-step", - # typeOfStatisticalProcessing="average", - # descriptiveName="avg-since-last-pp-depthBelowSeaLayer", - # ), - # ], - # ), - # TODO - ClimateDT Phase 2 - # partialRule( - # [matchType("levtype", "o2d"), matchParam([263000, 263001, 263003, 263004, 263008])], - # [ - # levelConfig("iceLayerOnWater"), - # paramConfig("paramId"), - # TimeRange( - # type="since-last-post-processing-step", - # typeOfStatisticalProcessing="average", - # descriptiveName="avg-since-last-pp-iceLayerOnWater", - # ), - # ], - # ), - # TODO - ClimateDT Phase 2 - # partialRule( - # [matchType("levtype", "o2d"), matchParam([263100, 263101, 263124])], - # [ - # levelConfig("oceanSurface"), - # paramConfig("paramId"), - # TimeRange( - # type="since-last-post-processing-step", - # typeOfStatisticalProcessing="average", - # descriptiveName="avg-since-last-pp-oceanSurface", - # ), - # ], - # ), - # TODO - ClimateDT Phase 2 - # partialRule( - # [matchType("levtype", "o2d"), matchParam([263123])], - # [ - # levelConfig("oceanSurfaceToBottom"), - # paramConfig("paramId"), - # TimeRange( - # type="since-last-post-processing-step", - # typeOfStatisticalProcessing="average", - # descriptiveName="avg-since-last-pp-oceanSurfaceToBottom", - # ), - # ], - # ), - # TODO - ClimateDT Phase 2 - # partialRule( - # [matchType("levtype", "o2d"), matchParam([263009])], - # [ - # levelConfig("snowLayerOverIceOnWater"), - # paramConfig("paramId"), - # TimeRange( - # type="since-last-post-processing-step", - # typeOfStatisticalProcessing="average", - # descriptiveName="avg-since-last-pp-snowLayerOverIceOnWater", - # ), - # ], - # ), -] - -PARAM_LEVTYPE_O3D = [ - # TODO - ClimateDT Phase 2 - # partialRule( - # [matchType("levtype", "o3d"), matchParam([263507])], - # [ - # levelConfig("oceanModel"), - # paramConfig("paramId"), - # TimeRange( - # type="since-last-post-processing-step", - # typeOfStatisticalProcessing="average", - # descriptiveName="avg-since-last-pp-oceanModel", - # ), - # ], - # ), - # TODO - ClimateDT Phase 2 - # partialRule( - # [matchType("levtype", "o3d"), matchParam([263500, 263501, 263505, 263506])], - # [ - # levelConfig("oceanModelLayer"), - # paramConfig("paramId"), - # TimeRange( - # type="since-last-post-processing-step", - # typeOfStatisticalProcessing="average", - # descriptiveName="avg-since-last-pp-oceanModelLayer", - # ), - # ], - # ), -] - - -# Satellite - -PARAM_SATELLITE = [ - partialRule( - [matchType("levtype", "sfc"), matchParam(["260510:260513"])], - [PointInTime(), paramConfig("paramId"), SatelliteConfig()], - ), -] - - -# Combine all param levtype configurations - -PARAM_LEVTYPE = ( - PARAM_LEVTYPE_SFC - + PARAM_LEVTYPE_HL - + PARAM_LEVTYPE_ML - + PARAM_LEVTYPE_PL - + PARAM_LEVTYPE_SOL - + PARAM_LEVTYPE_PT - + PARAM_LEVTYPE_PV - + PARAM_LEVTYPE_O2D - + PARAM_LEVTYPE_O3D - + PARAM_SATELLITE -) -PARAM_LEVTYPE_SH = ( - PARAM_LEVTYPE_ML_SH - + PARAM_LEVTYPE_PL_SH - + PARAM_LEVTYPE_PV_SH - + PARAM_LEVTYPE_PT_SH -) - -PACKING = [ - partialRule( - [matchType("packing", "simple")], - [DataRepresentation(templateNumber=0, descriptiveName="simple")], - ), - partialRule( - [matchType("packing", "ccsds")], - [DataRepresentation(templateNumber=42, descriptiveName="ccsds")], - ), -] - -# TODO Usallay there is complex_simple and complex_ccsds -PACKING_SH = [ - partialRule( - [matchType("packing", "complex")], - [DataRepresentation(templateNumber=51, descriptiveName="complex")], - ) -] - - -rules = list( - combinePartialRules( - [TYPES, GRIDS, LOCALSECTION, PROCESSTYPES, PARAM_LEVTYPE, PACKING] - ) -) -rules_sh = list( - combinePartialRules( - [TYPES, GRIDS_SH, LOCALSECTION, PROCESSTYPES, PARAM_LEVTYPE_SH, PACKING_SH] - ) -) -rules_al = list( - combinePartialRules( - [TYPES, GRIDS, LOCALSECTION, PROCESSTYPES_AL, PARAM_LEVTYPE_AL, PACKING] - ) -) -all_rules = rules + rules_sh + rules_al - -encodedRules = [buildRule(mergePartialRules(rl)) for rl in all_rules] - -encodedRulesDict = {e.name: [] for e in encodedRules} -for rule in encodedRules: - encodedRulesDict[rule.name].append(rule) - -duplicatedRules = {key: val for (key, val) in encodedRulesDict.items() if len(val) > 1} - - -if len(duplicatedRules) > 0: - raise ValueError( - f"Not all rule names are unique, detected {len(duplicatedRules)} duplications." - ) - - -def templateCMakeFile(dir, subDirs): - fileSubDirsStr = "\n".join( - [ - f'file(MAKE_DIRECTORY "${{CMAKE_BINARY_DIR}}/share/multiom/{dir}/{sd}")' - for sd in subDirs - ] - ) + ("\n" if len(subDirs) > 0 else "") - addSubDirsStr = "\n".join([f'add_subdirectory("{sd}")' for sd in subDirs]) - return f""" -file(GLOB encoding_rules RELATIVE ${{CMAKE_CURRENT_SOURCE_DIR}} "*.yaml") - -{fileSubDirsStr} -{addSubDirsStr} - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${{encoding_rules}}) - configure_file(${{CMAKE_CURRENT_SOURCE_DIR}}/${{rule}} - ${{CMAKE_CURRENT_BINARY_DIR}}/${{rule}} - COPYONLY) - - configure_file(${{CMAKE_CURRENT_SOURCE_DIR}}/${{rule}} - ${{CMAKE_BINARY_DIR}}/share/multiom/{dir}/${{rule}} - COPYONLY) -endforeach() - - -install( - FILES ${{encoding_rules}} - DESTINATION ${{MULTIOM_CONFIG_DIR}}/{dir} - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) -""" - - -# Take list of paths and return to a dictionary -def pathListToDict(pathList): - def recSplitPathList(spl): - tmp = {} - for sp in spl: - if len(sp) == 0: - continue - - if sp[0] not in tmp.keys(): - tmp[sp[0]] = [] - tmp[sp[0]].append(sp[1:]) - - return {key: recSplitPathList(subSpl) for (key, subSpl) in tmp.items()} - - return recSplitPathList( - [list(filter(lambda s: s != "", p.split("/"))) for p in set(pathList)] - ) - - -def createCMakeFiles(relDir, pathList): - pld = pathListToDict(pathList) - - def recPld(basePath, pld): - for path, subPld in pld.items(): - newBasePath = f"{basePath}/{path}" if basePath != "" else path - - fileContent = templateCMakeFile(newBasePath, list(sorted(subPld.keys()))) - - with open( - "/".join([relDir, newBasePath, "CMakeLists.txt"]), "w" - ) as fileOut: - fileOut.write(fileContent) - - recPld(newBasePath, subPld) - - recPld("", pld) - - -class RuleContext(BaseModel): - attr: Dict - path: str - fname: str - rule: EncodeRule - - -def pathForRule(baseDir: str, rule: EncodeRule) -> RuleContext: - levtype = ( - "_".join( - [ - f.filter.value - for f in rule.filter.filter.filters - if isinstance(f.filter, MatchType) and f.filter.type == "levtype" - ] - ) - if isinstance(rule.filter.filter, ComposeAll) - else "" - ) - - marsType = ( - None - if rule.encode.identification.marsType is None - else rule.encode.identification.marsType.type - ) - process = ( - lambda pt: "_".join( - ([] if pt.type == ProcessTypes.default else [pt.type]) + [pt.subType] - ) - )(rule.encode.product.processType) - packing = rule.encode.dataRepres.descriptiveName - - return RuleContext( - attr={ - "type": marsType, - "packing": packing, - "levtype": levtype, - "process": process, - }, - path="/".join( - filter( - lambda d: d is not None, [baseDir, packing, process, marsType, levtype] - ) - ), - fname=f"{rule.name}.yaml", - rule=rule, - ) - - -def findMatchTypeFilter(filter: RuleFilter, type: str) -> (str, str): - """ - Returns a tuple with the value of the filter and the operation (match or ignore) - """ - if not isinstance(filter, RuleFilter): - return None - if not isinstance(filter.filter, ComposeAll): - return None - for r in filter.filter.filters: - if isinstance(r.filter, MatchType) and r.filter.type == type: - return (r.filter.value, "match") - if isinstance(r.filter, NotMatchType) and r.filter.type == type: - return (r.filter.value, "ignore") - # Look recursively - if isinstance(r.filter, ComposeAll): - return findMatchTypeFilter(r, type) - return None - - -def findHasOrLacksFilter(filter: RuleFilter, type: str): - if not isinstance(filter.filter, ComposeAll): - return None - for r in filter.filter.filters: - if isinstance(r.filter, HasType) and r.filter.type == type: - return "has" - if isinstance(r.filter, LacksType) and r.filter.type == type: - return "lacks" - # Look recursively - if isinstance(r.filter, ComposeAll): - return findHasOrLacksFilter(r, type) - return None - - -def fileDictEntry(baseDir, path, fname): - return {"file": "/".join([baseDir, path, fname])} - - -def applyNestedFilters( - filters: List[Tuple[str, str]], rules: List[RuleContext], baseDir -): - if len(filters) == 0: - return [fileDictEntry(baseDir, rc.path, rc.fname) for rc in rules] - - def recurse(fs, rls, baseDir): - ret = applyNestedFilters(fs, rls, baseDir) - if isinstance(ret, list): - return {"encoding-rules": ret} - return {"nested-rules": ret} - - (filterName, filterType) = filters[0] - fs = filters[1:] - match filterType: - case "has/lacks": - has = [ - rc - for rc in rules - if findHasOrLacksFilter(rc.rule.filter, filterName) == "has" - ] - lacks = [ - rc - for rc in rules - if findHasOrLacksFilter(rc.rule.filter, filterName) == "lacks" - ] - return { - "key": filterName, - "operations": [ - {"operation": "has", **recurse(fs, has, baseDir)}, - {"operation": "lacks", **recurse(fs, lacks, baseDir)}, - ], - } - - case "match/ignore": - # Find all matchers - rules that do not match an this key will return a value None. These should produce a "lacks" operation - matchPairs = [ - (findMatchTypeFilter(rc.rule.filter, filterName), rc) for rc in rules - ] - valuesDict = {} - for valAndOp, rc in matchPairs: - if valAndOp not in valuesDict.keys(): - valuesDict[valAndOp] = [] - valuesDict[valAndOp].append(rc) - - return { - "key": filterName, - "operations": [ - ( - {"operation": "lacks", **recurse(fs, rs, baseDir)} - if valAndOp is None - else { - "operation": valAndOp[1], - "value": valAndOp[0], - **recurse(fs, rs, baseDir), - } - ) - for (valAndOp, rs) in valuesDict.items() - ], - } - - -RELATIVE_DIR = ".." -BASE_DIR = "encodings" -BASE_DIR_RULE_LIST = "{IFS_INSTALL_DIR}/share/multiom" -ENCODING_RULES_SPLIT = ["packing", "process"] - -# Filters are has/lacks -NESTED_FILTERS = [ - ("class", "match/ignore"), - ("number", "has/lacks"), - ("hdate", "has/lacks"), - ("anoffset", "has/lacks"), - ("repres", "match/ignore"), - ("packing", "match/ignore"), - ("levtype", "match/ignore"), -] - -REL_BASE_DIR = "/".join([RELATIVE_DIR, BASE_DIR]) - -ruleFiles = [pathForRule(BASE_DIR, rule) for rule in encodedRules] - - -def main(): - # Remove dir if already exists to avoid duplications or different directory structures - if os.path.exists(REL_BASE_DIR): - shutil.rmtree(REL_BASE_DIR) - os.makedirs(REL_BASE_DIR) - - for rc in ruleFiles: - pathlib.Path("/".join([RELATIVE_DIR, rc.path])).mkdir( - parents=True, exist_ok=True - ) - with open("/".join([RELATIVE_DIR, rc.path, rc.fname]), "w") as fileOut: - fileOut.write(toYAML(toDictRepres(rc.rule))) - - pathList = list({rc.path for rc in ruleFiles}) - - createCMakeFiles(RELATIVE_DIR, pathList) - - def keyForRuleList(sel): - return "-".join([sel[k] for k in ENCODING_RULES_SPLIT]) - - mappedRuleFiles = [ - ({key: rc.attr[key] for key in ENCODING_RULES_SPLIT}, rc.path, rc.fname) - for rc in ruleFiles - ] - rulesBySplit = {k: [] for k in {keyForRuleList(mr[0]) for mr in mappedRuleFiles}} - allFiles = [] - for sel, path, fname in mappedRuleFiles: - key = keyForRuleList(sel) - f = fileDictEntry(BASE_DIR_RULE_LIST, path, fname) - rulesBySplit[key].append(f) - allFiles.append(f) - - for key, files in rulesBySplit.items(): - with open(f"{REL_BASE_DIR}/encoding-rules-{key}.yaml", "w") as fileOut: - fileOut.write(toYAML({"encoding-rules": files})) - - with open(f"{REL_BASE_DIR}/encoding-rules.yaml", "w") as fileOut: - fileOut.write(toYAML({"encoding-rules": allFiles})) - - nestedFilterFiles = applyNestedFilters( - NESTED_FILTERS, ruleFiles, BASE_DIR_RULE_LIST - ) - with open(f"{REL_BASE_DIR}/encoding-rules-nested.yaml", "w") as fileOut: - fileOut.write( - toYAML( - { - ( - "encoding-rules" - if len(nestedFilterFiles) == 0 - else "nested-rules" - ): nestedFilterFiles - } - ) - ) - - -if __name__ == "__main__": - main() diff --git a/share/multiom/generate_knowledge/input/keyMappings.yaml b/share/multiom/generate_knowledge/input/keyMappings.yaml deleted file mode 100644 index 0dd60cd4c..000000000 --- a/share/multiom/generate_knowledge/input/keyMappings.yaml +++ /dev/null @@ -1,413 +0,0 @@ -# Key mappings describe eccodes meta keys that set other low-level keys. -# If one meta key is given low level keys are not looked up -keyMappings: - # startTime - # end Time ? - paramId: - - parameterCategory - - parameterNumber - # Currently paramId sets more values depending on the specific param. However, in future we want to decouple these things anyway. So we ignore it here for now - - # paramType: may be added recently for ERA6... - - # Timing information is handled without metakeys for now - # startStep: - # - forecastTime - - # stepUnit: - # - indicatorOfUnitOfTimeRange - - # endStep: - # - yearOfEndOfOverallTimeInterval - # - monthOfEndOfOverallTimeInterval - # - dayOfEndOfOverallTimeInterval - # - hourOfEndOfOverallTimeInterval - # - minuteOfEndOfOverallTimeInterval - # - secondOfEndOfOverallTimeInterval - # - lengthOfTimeRange # only for typeOfTimeIncrement != 1... - - # Ignore that - enforce using startStep and endStep separately - # stepRange: - # - extend: startStep - # - extend: endStep - - lowerLimit: - - scaleFactorOfLowerLimit - - scaledValueOfLowerLimit - - upperLimit: - - scaleFactorOfUpperLimit - - scaledValueOfUpperLimit - - firstSize: - - scaleFactorOfFirstSize - - scaledValueOfFirstSize - - secondSize: - - scaleFactorOfSecondSize - - scaledValueOfSecondSize - - - - - typeOfLevel: - - typeOfFirstFixedSurface - # - scaleFactorOfFirstFixedSurface - # - scaledValueOfFirstFixedSurface # scaledValue may be set to a custom value for some typeOfLevel - # - scaleFactorOfSecondFixedSurface - # - scaledValueOfSecondFixedSurface - - typeOfSecondFixedSurface - # - pressureUnits - # - genVertHeightCoords - - - combinationOfAttributesOfTile: - - numberOfUsedTileAttributesForTileAttributeCombination - - attributeOfTile - - -# All key may be null -keyTypes: - # parameter - paramId: IntType - parameterCategory: IntType - parameterNumber: IntType - # time - startStep: [IntType, StringType] - endStep: [IntType, StringType] - # forecast time - hoursAfterDataCutoff: IntType - minutesAfterDataCutoff: IntType - indicatorOfUnitOfTimeRange: IntType # code table lookup - forecastTime: IntType - # time range - indicatorOfUnitOfTimeRange: [StringType, StringArrayType] # can be array for multiple intervals - lengthOfTimeRange: [IntType, IntArrayType] # can be array for multiple intervals - # statistical - typeOfStatisticalProcessing: [IntType, IntArrayType] # can be array for multiple intervals - # interval - yearOfEndOfOverallTimeInterval: IntType - monthOfEndOfOverallTimeInterval: IntType - dayOfEndOfOverallTimeInterval: IntType - hourOfEndOfOverallTimeInterval: IntType - minuteOfEndOfOverallTimeInterval: IntType - secondOfEndOfOverallTimeInterval: IntType - numberOfTimeRange: IntType - numberOfMissingInStatisticalProcess: [IntType, IntArrayType] # can be array for multiple intervals - indicatorOfUnitForTimeRange: [IntType, IntArrayType] # can be array for multiple intervals - typeOfTimeIncrement: [IntType, IntArrayType] # can be array for multiple intervals - indicatorOfUnitForTimeIncrement: [IntType, IntArrayType] # can be array for multiple intervals - timeIncrement: [IntType, IntArrayType] # can be array for multiple intervals - - # horizontal - typeOfLevel: StringType - typeOfFirstFixedSurface: IntType - typeOfSecondFixedSurface: IntType - scaleFactorOfFirstFixedSurface: IntType - scaledValueOfFirstFixedSurface: IntType - scaleFactorOfSecondFixedSurface: IntType - scaledValueOfSecondFixedSurface: IntType - # pressureUnits: StringType - # genVertHeightCoords: IntType - - # probability forecast - scaleFactorOfLowerLimit: IntType - scaledValueOfLowerLimit: IntType - scaleFactorOfUpperLimit: IntType - scaledValueOfUpperLimit: IntType - probabilityType: IntType - forecastProbabilityNumber: IntType - totalNumberOfForecastProbabilities: IntType - - # probability meta keys - lowerLimit: FloatType - upperLimit: FloatType - - # percentileForecast - percentileValue: IntType - - # spatialStatisticalProcessing - statisticalProcess: IntType - spatialProcessing: IntType - numberOfPointsUsed: IntType - - # generatingProcessType - typeOfGeneratingProcess: IntType - - # generatingProcess - backgroundProcess: IntType - generatingProcessIdentifier: IntType - - # radar - numberOfRadarSitesUsed: IntType - indicatorOfUnitOfTimeRange: IntType - siteLatitude: IntType - siteLongitude: IntType - siteElevation: IntType - siteId: IntType - siteId: IntType - operatingMode: IntType - reflectivityCalibrationConstant: IntType - qualityControlIndicator: IntType - clutterFilterIndicator: IntType - constantAntennaElevationAngle: IntType - accumulationInterval: IntType - referenceReflectivityForEchoTop: IntType - rangeBinSpacing: IntType - radialAngularSpacing: IntType - - # observationGeneratingProcess - observationGeneratingProcessIdentifier: IntType - - # satellite - numberOfContributingSpectralBands: IntType - satelliteSeries: IntArrayType - satelliteNumber: IntArrayType - instrumentType: IntArrayType - scaleFactorOfCentralWaveNumber: IntArrayType - scaledValueOfCentralWaveNumber: IntArrayType - - # qualityValue - qualityValueAssociatedWithParameter: IntType - - # chemical - constituentType: IntType - - # srcsink - sourceSinkChemicalPhysicalProcess: IntType - - # distribution - numberOfModeOfDistribution: IntType - modeNumber: IntType - typeOfDistributionFunction: IntType - numberOfDistributionFunctionParameters: IntType - scaleFactorOfDistributionFunctionParameter: IntArrayType - scaledValueOfDistributionFunctionParameter: IntArrayType - - # aerosol - aerosolType: IntType - typeOfSizeInterval: IntType - scaleFactorOfFirstSize: IntType - scaledValueOfFirstSize: IntType - scaleFactorOfSecondSize: IntType - scaledValueOfSecondSize: IntType - - # aerosol meta keys - firstSize: FloatType - secondSize: FloatType - - - # aerosol opticalProperties: - typeOfWavelengthInterval: IntType - scaleFactorOfFirstWavelength: IntType - scaledValueOfFirstWavelength: IntType - scaleFactorOfSecondWavelength: IntType - scaledValueOfSecondWavelength: IntType - - # ensemble - numberOfForecastsInEnsemble: IntType - - # perturbed - perturbationNumber: IntType - - # individualEnsembleForecast - typeOfEnsembleForecast: IntType - - # derivedEnsembleForecast - derivedForecast: IntType - - # categorialForecast: - numberOfCategories: IntType - codeFigure: IntArrayType - categoryType: IntArrayType - scaleFactorOfLowerLimit: IntArrayType - scaledValueOfLowerLimit: IntArrayType - scaleFactorOfUpperLimit: IntArrayType - scaledValueOfUpperLimit: IntArrayType - - # partitioned - partitionTable: IntType - numberOfPartitions: IntType - partitionItems: IntArrayType - partitionNumber: IntArrayType - - # cluster - clusterIdentifier: IntType - NH: IntType - NL: IntType - totalNumberOfClusters: IntType - clusteringMethod: IntType - - - # clusterStat: - numberOfForecastsInTheCluster: IntType - scaleFactorOfStandardDeviation: IntType - scaledValueOfStandardDeviation: IntType - scaleFactorOfDistanceFromEnsembleMean: IntType - scaledValueOfDistanceFromEnsembleMean: IntType - ensembleForecastNumbers: IntType - - # clusterStatRectangular - northernLatitudeOfClusterDomain: IntType - southernLatitudeOfClusterDomain: IntType - easternLongitudeOfClusterDomain: IntType - westernLongitudeOfClusterDomain: IntType - - - # clusterStatCircular - latitudeOfCentralPointInClusterDomain: IntType - longitudeOfCentralPointInClusterDomain: IntType - radiusOfClusterDomain: IntType - - # reforecast - YearOfModelVersion: IntType - MonthOfModelVersion: IntType - DayOfModelVersion: IntType - HourOfModelVersion: IntType - MinuteOfModelVersion: IntType - SecondOfModelVersion: IntType - - # postProcess - inputProcessIdentifier: IntType - inputOriginatingCentre: IntType - typeOfPostProcessing: IntType - - # spatioTemporalTile - tileClassification: IntType - totalNumberOfTileAttributePairs: IntType - numberOfUsedSpatialTiles: IntType - tileIndex: IntType - numberOfUsedTileAttributes: IntType - attributeOfTile: IntType - - - # quantileForecast: - totalNumberOfQuantiles: IntType - quantileValue: IntType - - # localTime - localTimeMethod: IntType - numberOfForecastsUsedinLocalTime: IntType - # The following values can be supplied once or in an array (for numberOfForecastsUsedinLocalTime) - yearOfForecastUsedInLocalTime: [IntType, IntArrayType] - monthOfForecastUsedInLocalTime: [IntType, IntArrayType] - dayOfForecastUsedInLocalTime: [IntType, IntArrayType] - hourOfForecastUsedInLocalTime: [IntType, IntArrayType] - minuteOfForecastUsedInLocalTime: [IntType, IntArrayType] - secondOfForecastUsedInLocalTime: [IntType, IntArrayType] - indicatorOfUnitForForecastTime: [IntType, IntArrayType] - forecastTime: [IntType, IntArrayType] - numberOfTimeIncrementsOfForecastsUsedInLocalTime: [IntType, IntArrayType] - indicatorOfUnitForTimeIncrement: [IntType, IntArrayType] - timeIncrement: [IntType, IntArrayType] - - # localTime_statistical - numberOfStatisticallyProcessedFieldsForLocalTime: IntType - - # crossSectLatLong - horizontalDimensionProcessed: IntType - treatmentOfMissingData: IntType - startOfRange: IntType - endOfRange: IntType - numberOfDataValues: IntType - - - # waveSpectraCommon - waveDirectionNumber: IntType - numberOfWaveDirections: IntType - waveFrequencyNumber: IntType - numberOfWaveFrequencies: IntType - - # waveSpectraList - scaleFactorOfWaveDirections: IntType - scaledValueOfWaveDirections: [IntType, IntArrayType] - scaleFactorOfWaveFrequencies: IntType - scaledValueOfWaveFrequencies: [IntType, IntArrayType] - - # waveSpectraFormula - typeOfWaveDirectionSequence: IntType - numberOfWaveDirectionSequenceParameters: IntType - scaleFactorOfWaveDirectionSequenceParameter: [IntType, IntArrayType] - scaledValueOfWaveDirectionSequenceParameter: [IntType, IntArrayType] - typeOfWaveFrequencySequence: IntType - numberOfWaveFrequencySequenceParameters: IntType - scaleFactorOfWaveFrequencySequenceParameter: [IntType, IntArrayType] - scaledValueOfWaveFrequencySequenceParameter: [IntType, IntArrayType] - - - # wavePeriodRange - typeOfWavePeriodInterval: IntType - scaleFactorOfLowerWavePeriodLimit: IntType - scaledValueOfLowerWavePeriodLimit: IntType - scaleFactorOfUpperWavePeriodLimit: IntType - scaledValueOfUpperWavePeriodLimit: IntType - - # referencePeriod - typeOfReferenceDataset: IntType - typeOfRelationToReferenceDataset: IntType - numberOfAdditionalParameterForReferencePeriod: IntType - scaleFactorOfAdditionalParameterForReferencePeriod: [IntType, IntArrayType] - scaledValueOfAdditionalParameterForReferencePeriod: [IntType, IntArrayType] - yearOfStartOfReferencePeriod: IntType - monthOfStartOfReferencePeriod: IntType - dayOfStartOfReferencePeriod: IntType - hourOfStartOfReferencePeriod: IntType - minuteOfStartOfReferencePeriod: IntType - secondOfStartOfReferencePeriod: IntType - sampleSizeOfReferencePeriod: IntType - numberOfReferencePeriodTimeRanges: IntType - typeOfStatisticalProcessingForTimeRangeForReferencePeriod: [IntType, IntArrayType] - indicatorOfUnitForTimeRangeForReferencePeriod: [IntType, IntArrayType] - lengthOfTimeRangeForReferencePeriod: [IntType, IntArrayType] - - # radioNuclide: - transportModelUsed: IntType - requestedByEntity: StringType - scenarioOrigin: IntType - NWPused: IntType - releaseStartYear: IntType - releaseStartMonth: IntType - releaseStartDay: IntType - releaseStartHour: IntType - releaseStartMinute: IntType - releaseStartSecond: IntType - wallClockInitialTimeOfExecutionYear: IntType - wallClockInitialTimeOfExecutionMonth: IntType - wallClockInitialTimeOfExecutionDay: IntType - wallClockInitialTimeOfExecutionHour: IntType - wallClockInitialTimeOfExecutionMinute: IntType - wallClockInitialTimeOfExecutionSecond: IntType - - - # generalisedTile - tileClassification: StringType - typeOfTile: StringType - numberOfUsedSpatialTiles: IntType - numberOfUsedTileAttributeCombinationsForTypeOfTile: IntType - numberOfUsedTileAttributesForTileAttributeCombination: IntType - attributeOfTile: IntType - totalNumberOfTileAttributeCombinations: IntType - tileIndex: IntType - - combinationOfAttributesOfTile: StringType - - - # focalStatistics - spatialVicinityType: IntType - numberOfSpatialVicinityValues: IntType - spatialVicinityValue: IntType - spatialVicinityProcessing: IntType - spatialVicinityProcessingArgument1: IntType - spatialVicinityProcessingArgument2: IntType - spatialVicinityMissingData: IntType - temporalVicinityProcessing: IntType - temporalVicinityUnit: IntType - temporalVicinityTowardsPast: IntType - temporalVicinityTowardsFuture: IntType - - - - - - # ccittIA5 - numberOfCharacters: IntType diff --git a/share/multiom/generate_knowledge/input/pdt.yaml b/share/multiom/generate_knowledge/input/pdt.yaml deleted file mode 100644 index 7983bec9f..000000000 --- a/share/multiom/generate_knowledge/input/pdt.yaml +++ /dev/null @@ -1,4655 +0,0 @@ -# There are 3 top level key -# * groups -# * categories -# * pdt -# -# Pdt is a dictinoary that is mapping productDefinitionTemplateNumber to a name, set of groups of keys and a set of keys. -# All the keys can be generated from the set of groups directly. -# Hence the keys can be removed but are currently kept and checked against the keys generated from the groups. - -# -# Todo: add generalized tiles - -#------------------------------------------------------------------------------ -# Categories mapping to set of groups. -# In a second step, the python script is assuring that each set of groups can be -# mapped uniquely to one productDefinitionTemplateNumber -#------------------------------------------------------------------------------ - -categories: - timeExtent: - - name: null - categories: - timeFormat: - - null - - - pointInTime: - timeFormat: - - null - - localTime - - withReferencePeriod: [referencePeriod] - - timeRange: - timeFormat: - - null - - localTime - - withReferencePeriod: [referencePeriod] - - spatialExtent: - - null - - generalisedTile - - focalStatistics - - clusterStatCircular - - clusterStatRectangular - - randomPatterns # don't know if this one is right - - processType: - - name: null - groups: null - categories: - processSubType: - - null - - ensemble: [individualEnsembleForecast] - - largeEnsemble - - - name: reforecast - groups: [reforecast] - categories: - processSubType: - - ensemble: [individualEnsembleForecast] - - - name: derivedForecast - groups: [derivedForecast] - categories: - processSubType: - - ensemble: [derivedEnsembleForecast] - - - name: probability - groups: [probabilityForecast] - categories: - processSubType: - - null - - ensemble: [probabilityEnsembleForecast] - - - percentile: [percentileForecast] - - quantile: [quantileForecast] - - categorial: [categorialForecast] - - - # Null value filters all PDT that list none of the other options - productCategory: - - null - - postProcess - - partitioned - - spatialStatisticalProcessing - - radar - - spatioTemporalTile - - hovmoeller - - ccittIA5 - - optical - - wave: - productSubCategory: - - spectraList: [waveSpectraList] - - spectraFormula: [waveSpectraFormula] - - periodRange: [wavePeriodRange] - - satellite: - productSubCategory: - # null will select 'Satellite Product" if timeExtent is none - - null - - qualityValue - - aerosol: - productSubCategory: - - null - - optical: [aerosol_optical] - - sourceSink: [aerosol_sourceSink] - - opticalSourceSink: [aerosol_sourceSink_optical] - - chemical: - productSubCategory: - - null - - sourceSink: [chemical_sourceSink] - - radioNuclide: [chemical_radioNuclide] - - distribution: [chemical_distribution] - - crossSect: - productSubCategory: - - null - - statisticalOverLatLong - - - - -#------------------------------------------------------------------------------ -# Groups of keys in the order they are occuring in (most of) product templates -#------------------------------------------------------------------------------ - -groups: - parameter: - - parameterCategory - - parameterNumber - - forecastTime: - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - probabilityForecast: - - forecastProbabilityNumber - - totalNumberOfForecastProbabilities - - probabilityType - - scaleFactorOfLowerLimit - - scaledValueOfLowerLimit - - scaleFactorOfUpperLimit - - scaledValueOfUpperLimit - - percentileForecast: - - percentileValue - - spatialStatisticalProcessing: - - statisticalProcess - - spatialProcessing - - numberOfPointsUsed - - horizontal: - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - generatingProcessType: - - typeOfGeneratingProcess - - generatingProcess: - - extend: generatingProcessType - - backgroundProcess - - generatingProcessIdentifier - - radar: - - numberOfRadarSitesUsed - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - siteLatitude - - siteLongitude - - siteElevation - - siteId - - siteId - - operatingMode - - reflectivityCalibrationConstant - - qualityControlIndicator - - clutterFilterIndicator - - constantAntennaElevationAngle - - accumulationInterval - - referenceReflectivityForEchoTop - - rangeBinSpacing - - radialAngularSpacing - - observationGeneratingProcess: - - observationGeneratingProcessIdentifier - - satellite: - - numberOfContributingSpectralBands - - repeatFor: numberOfContributingSpectralBands - values: - - satelliteSeries - - satelliteNumber - - instrumentType - - scaleFactorOfCentralWaveNumber - - scaledValueOfCentralWaveNumber - - qualityValue: - - qualityValueAssociatedWithParameter - - satelliteQualityValue: - - extend: qualityValue - - extend: satellite - - - statistical: - - typeOfStatisticalProcessing - - - pointInTime: - - timeRange: - - indicatorOfUnitForTimeRange - - lengthOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - singleTimeRangeAndIncrement: - - numberOfMissingInStatisticalProcess - - extend: statistical - - typeOfTimeIncrement - - extend: timeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - statisticalTimeRange: - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - chemical: - - constituentType - - sourceSink: - - sourceSinkChemicalPhysicalProcess - - radioNuclide: - - transportModelUsed - - requestedByEntity - - scenarioOrigin - - NWPused - - releaseStartYear - - releaseStartMonth - - releaseStartDay - - releaseStartHour - - releaseStartMinute - - releaseStartSecond - - wallClockInitialTimeOfExecutionYear - - wallClockInitialTimeOfExecutionMonth - - wallClockInitialTimeOfExecutionDay - - wallClockInitialTimeOfExecutionHour - - wallClockInitialTimeOfExecutionMinute - - wallClockInitialTimeOfExecutionSecond - - chemical_sourceSink: - - extend: chemical - - extend: sourceSink - - chemical_radioNuclide: - - extend: chemical - - extend: sourceSink - - extend: radioNuclide - - distribution: - - numberOfModeOfDistribution - - modeNumber - - typeOfDistributionFunction - - numberOfDistributionFunctionParameters - - repeatFor: numberOfDistributionFunctionParameters - values: - - scaleFactorOfDistributionFunctionParameter - - scaledValueOfDistributionFunctionParameter - - chemical_distribution: - - extend: chemical - - extend: distribution - - - aerosol: - - aerosolType - - append: nested - - typeOfSizeInterval - - scaleFactorOfFirstSize - - scaledValueOfFirstSize - - scaleFactorOfSecondSize - - scaledValueOfSecondSize - - aerosol_sourceSink: - - extend: aerosol - nested: - - extend: sourceSink - - opticalProperties: - - typeOfWavelengthInterval - - scaleFactorOfFirstWavelength - - scaledValueOfFirstWavelength - - scaleFactorOfSecondWavelength - - scaledValueOfSecondWavelength - - optical: - - extend: opticalProperties - - aerosol_optical: - - extend: aerosol - - extend: opticalProperties - - aerosol_sourceSink_optical: - - extend: aerosol - nested: - - extend: sourceSink - - extend: opticalProperties - - - ensemble: - - numberOfForecastsInEnsemble - - largeEnsemble: - - numberOfForecastsInEnsemble - - perturbed: - - perturbationNumber - - baseIndividualEnsembleForecast: - - typeOfEnsembleForecast - - extend: perturbed - - append: nested - - individualEnsembleForecast: - - extend: baseIndividualEnsembleForecast - nested: - - extend: ensemble - - largeIndividualEnsembleForecast: - - extend: baseIndividualEnsembleForecast - nested: - - extend: largeEnsemble - - derivedForecast: - - derivedForecast - - derivedEnsembleForecast: - - extend: derivedForecast - - extend: ensemble - - probabilityEnsembleForecast: - - typeOfEnsembleForecast - - extend: ensemble - - extend: probabilityForecast - - categorialForecast: - - numberOfCategories - - repeatFor: numberOfCategories - values: - - codeFigure - - categoryType - - scaleFactorOfLowerLimit - - scaledValueOfLowerLimit - - scaleFactorOfUpperLimit - - scaledValueOfUpperLimit - - partitioned: - - partitionTable - - numberOfPartitions - - repeatFor: numberOfPartitions - values: - - partitionItems - - repeatFor: numberOfPartitions - values: - - partitionNumber - - cluster: - - clusterIdentifier - - NH - - NL - - totalNumberOfClusters - - clusteringMethod - - clusterStat: - - numberOfForecastsInTheCluster - - scaleFactorOfStandardDeviation - - scaledValueOfStandardDeviation - - scaleFactorOfDistanceFromEnsembleMean - - scaledValueOfDistanceFromEnsembleMean - - ensembleForecastNumbers - - clusterStatRectangular: - - extend: cluster - - northernLatitudeOfClusterDomain - - southernLatitudeOfClusterDomain - - easternLongitudeOfClusterDomain - - westernLongitudeOfClusterDomain - - groups: - - clusterStat - - clusterStatCircular: - - extend: cluster - - latitudeOfCentralPointInClusterDomain - - longitudeOfCentralPointInClusterDomain - - radiusOfClusterDomain - - extend: clusterStat - - reforecast: - - YearOfModelVersion - - MonthOfModelVersion - - DayOfModelVersion - - HourOfModelVersion - - MinuteOfModelVersion - - SecondOfModelVersion - - postProcess: - - inputProcessIdentifier - - inputOriginatingCentre - - typeOfPostProcessing - - spatioTemporalTile: - - tileClassification - - totalNumberOfTileAttributePairs - - numberOfUsedSpatialTiles - - tileIndex - - numberOfUsedTileAttributes - - attributeOfTile - - quantileForecast: - - totalNumberOfQuantiles - - quantileValue - - localTime: - - localTimeMethod - - numberOfForecastsUsedinLocalTime - - repeatFor: numberOfForecastsUsedinLocalTime - values: - - yearOfForecastUsedInLocalTime - - monthOfForecastUsedInLocalTime - - dayOfForecastUsedInLocalTime - - hourOfForecastUsedInLocalTime - - minuteOfForecastUsedInLocalTime - - secondOfForecastUsedInLocalTime - - indicatorOfUnitForForecastTime - - forecastTime - - numberOfTimeIncrementsOfForecastsUsedInLocalTime - - indicatorOfUnitForTimeIncrement - - timeIncrement - - localTime_statistical: - - extend: statistical - - extend: timeRange - - numberOfStatisticallyProcessedFieldsForLocalTime - - extend: localTime - - ccittIA5: - - extend: parameter - - crossSect: - - extend: parameter - - extend: generatingProcess - - extend: forecastTime - - crossSectTimeRange: - - extend: crossSect - - extend: singleTimeRangeAndIncrement - - statisticalOverLatLong: - - crossSectLatLong: - - extend: statisticalOverLatLong - - extend: crossSect - - horizontalDimensionProcessed - - treatmentOfMissingData - - extend: statistical - - startOfRange - - endOfRange - - numberOfDataValues - - - hovmoeller: - - extend: parameter - - extend: generatingProcess - - extend: forecastTime - - extend: horizontal - - wave: - - waveSpectra: - - extend: wave - - waveSpectraCommon: - - extend: waveSpectra - - waveDirectionNumber - - numberOfWaveDirections - - waveFrequencyNumber - - numberOfWaveFrequencies - - waveSpectraList: - - extend: waveSpectra - - scaleFactorOfWaveDirections - - repeatFor: numberOfWaveDirections - values: - - scaledValueOfWaveDirections - - scaleFactorOfWaveFrequencies - - repeatFor: numberOfWaveFrequencies - values: - - scaledValueOfWaveFrequencies - - waveSpectraFormula: - - extend: waveSpectra - - typeOfWaveDirectionSequence - - numberOfWaveDirectionSequenceParameters - - repeatFor: numberOfWaveDirectionSequenceParameters - values: - - scaleFactorOfWaveDirectionSequenceParameter - - scaledValueOfWaveDirectionSequenceParameter - - typeOfWaveFrequencySequence - - numberOfWaveFrequencySequenceParameters - - repeatFor: numberOfWaveFrequencySequenceParameters - values: - - scaleFactorOfWaveFrequencySequenceParameter - - scaledValueOfWaveFrequencySequenceParameter - - - wavePeriodRange: - - extend: wave - - typeOfWavePeriodInterval - - scaleFactorOfLowerWavePeriodLimit - - scaledValueOfLowerWavePeriodLimit - - scaleFactorOfUpperWavePeriodLimit - - scaledValueOfUpperWavePeriodLimit - - referencePeriod: - - typeOfReferenceDataset - - typeOfRelationToReferenceDataset - - numberOfAdditionalParameterForReferencePeriod - - repeatFor: numberOfAdditionalParameterForReferencePeriod - values: - - scaleFactorOfAdditionalParameterForReferencePeriod - - scaledValueOfAdditionalParameterForReferencePeriod - - yearOfStartOfReferencePeriod - - monthOfStartOfReferencePeriod - - dayOfStartOfReferencePeriod - - hourOfStartOfReferencePeriod - - minuteOfStartOfReferencePeriod - - secondOfStartOfReferencePeriod - - sampleSizeOfReferencePeriod - - numberOfReferencePeriodTimeRanges - - repeatFor: numberOfReferencePeriodTimeRanges - values: - - typeOfStatisticalProcessingForTimeRangeForReferencePeriod - - indicatorOfUnitForTimeRangeForReferencePeriod - - lengthOfTimeRangeForReferencePeriod - - generalisedTile: - - tileClassification - - typeOfTile - - numberOfUsedSpatialTiles - - numberOfUsedTileAttributeCombinationsForTypeOfTile - - numberOfUsedTileAttributesForTileAttributeCombination - - repeatFor: numberOfUsedTileAttributesForTileAttributeCombination - values: - - attributeOfTile - - totalNumberOfTileAttributeCombinations - - tileIndex - - - focalStatistics: - - spatialVicinityType - - numberOfSpatialVicinityValues - - repeatFor: numberOfSpatialVicinityValues - values: - - spatialVicinityValue - - spatialVicinityProcessing - - spatialVicinityProcessingArgument1 - - spatialVicinityProcessingArgument2 - - spatialVicinityMissingData - - temporalVicinityProcessing - - temporalVicinityUnit - - temporalVicinityTowardsPast - - temporalVicinityTowardsFuture - - randomPatterns: - - randomFieldNumber - - totalNumberOfRandomFields - - spatioTemporalScaleNumber - - totalNumberOfSpatioTemporalScales - - scaledValueOfSpatialScale - - scaleFactorOfSpatialScale - - scaledValueOfTemporalScale - - scaleFactorOfTemporalScale - - randomPatterns: - - randomFieldNumber - - totalNumberOfRandomFields - - spatioTemporalScaleNumber - - totalNumberOfSpatioTemporalScales - - scaledValueOfSpatialScale - - scaleFactorOfSpatialScale - - scaledValueOfTemporalScale - - scaleFactorOfTemporalScale - - - -# Keys interfering with other sections: -# - discipline... -# Ocean keys set grib stuff (250003 - 250012) -# - gridDefinitionTemplateNumber -# - numberOfGridInReference - - -#------------------------------------------------------------------------------ -# All pdt explicitly listed as set of groups and with their keys. -# The python script is checking that expanding the groups resolves in the same -# key set -#------------------------------------------------------------------------------ - -pdt: - 0: - groups: [parameter, generatingProcess, forecastTime, horizontal, pointInTime ] - name: "analysis or forecast at a horizontal level or in a horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - # Excluded in favour of large ensemble 117 - 1: - groups: [parameter, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, pointInTime] - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time " - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - 2: - groups: [parameter, generatingProcess, forecastTime, horizontal, derivedEnsembleForecast, pointInTime] - name: "Derived forecast based on all ensemble members at a horizontal level or in a horizontal layer at a point in time " - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - derivedForecast - - numberOfForecastsInEnsemble - 3: - groups: [parameter, generatingProcess, forecastTime, horizontal, derivedEnsembleForecast, clusterStatRectangular, pointInTime] - name: "Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - derivedForecast - - numberOfForecastsInEnsemble - - clusterIdentifier - - NH - - NL - - totalNumberOfClusters - - clusteringMethod - - northernLatitudeOfClusterDomain - - southernLatitudeOfClusterDomain - - easternLongitudeOfClusterDomain - - westernLongitudeOfClusterDomain - - numberOfForecastsInTheCluster - - scaleFactorOfStandardDeviation - - scaledValueOfStandardDeviation - - scaleFactorOfDistanceFromEnsembleMean - - scaledValueOfDistanceFromEnsembleMean - - ensembleForecastNumbers - 4: - groups: [parameter, generatingProcess, forecastTime, horizontal, derivedEnsembleForecast, clusterStatCircular, pointInTime] - name: "Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - derivedForecast - - numberOfForecastsInEnsemble - - clusterIdentifier - - NH - - NL - - totalNumberOfClusters - - clusteringMethod - - latitudeOfCentralPointInClusterDomain - - longitudeOfCentralPointInClusterDomain - - radiusOfClusterDomain - - numberOfForecastsInTheCluster - - scaleFactorOfStandardDeviation - - scaledValueOfStandardDeviation - - scaleFactorOfDistanceFromEnsembleMean - - scaledValueOfDistanceFromEnsembleMean - - ensembleForecastNumbers - 5: - groups: [parameter, generatingProcess, forecastTime, horizontal, probabilityForecast, pointInTime] - name: "Probability forecasts at a horizontal level or in a horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - forecastProbabilityNumber - - totalNumberOfForecastProbabilities - - probabilityType - - scaleFactorOfLowerLimit - - scaledValueOfLowerLimit - - scaleFactorOfUpperLimit - - scaledValueOfUpperLimit - 6: - groups: [parameter, generatingProcess, forecastTime, horizontal, percentileForecast, pointInTime] - name: "Percentile forecasts at a horizontal level or in a horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - percentileValue - # 7: - # groups: [parameter, generatingProcess, forecastTime, horizontal, pointInTime] - # name: "Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time" - # deprecated: "use 0" - # keys: - # - parameterCategory - # - parameterNumber - # - typeOfGeneratingProcess - # - backgroundProcess - # - generatingProcessIdentifier - # - hoursAfterDataCutoff - # - minutesAfterDataCutoff - # - indicatorOfUnitOfTimeRange - # - forecastTime - # - typeOfFirstFixedSurface - # - scaleFactorOfFirstFixedSurface - # - scaledValueOfFirstFixedSurface - # - typeOfSecondFixedSurface - # - scaleFactorOfSecondFixedSurface - # - scaledValueOfSecondFixedSurface - - 8: - groups: [parameter, generatingProcess, forecastTime, horizontal, statisticalTimeRange ] - name: "Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non- continuous time statisticalTimeRange" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - 9: - groups: [parameter, generatingProcess, forecastTime, horizontal, probabilityForecast, statisticalTimeRange] - name: "Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time statisticalTimeRange" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - forecastProbabilityNumber - - totalNumberOfForecastProbabilities - - probabilityType - - scaleFactorOfLowerLimit - - scaledValueOfLowerLimit - - scaleFactorOfUpperLimit - - scaledValueOfUpperLimit - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - 10: - groups: [parameter, generatingProcess, forecastTime, horizontal, percentileForecast, statisticalTimeRange] - name: "Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval Preliminary Note: This template was not validated at the time of publication and should be used with caution. Please report any use to WMO Secretariat (World Weather Watch - Basic Systems Department) to assist for validation. " - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - percentileValue - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - # Excluded in favour of large ensemble 118 - 11: - groups: [parameter, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, statisticalTimeRange] - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval " - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 12: - groups: [parameter, generatingProcess, forecastTime, horizontal, derivedEnsembleForecast, statisticalTimeRange] - name: "Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval " - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - derivedForecast - - numberOfForecastsInEnsemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - 13: - groups: [parameter, generatingProcess, forecastTime, horizontal, derivedEnsembleForecast, clusterStatRectangular, statisticalTimeRange] - name: "Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - derivedForecast - - numberOfForecastsInEnsemble - - clusterIdentifier - - NH - - NL - - totalNumberOfClusters - - clusteringMethod - - northernLatitudeOfClusterDomain - - southernLatitudeOfClusterDomain - - easternLongitudeOfClusterDomain - - westernLongitudeOfClusterDomain - - numberOfForecastsInTheCluster - - scaleFactorOfStandardDeviation - - scaledValueOfStandardDeviation - - scaleFactorOfDistanceFromEnsembleMean - - scaledValueOfDistanceFromEnsembleMean - - ensembleForecastNumbers - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - 14: - groups: [parameter, generatingProcess, forecastTime, horizontal, derivedEnsembleForecast, clusterStatCircular, statisticalTimeRange] - name: "Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval " - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - derivedForecast - - numberOfForecastsInEnsemble - - clusterIdentifier - - NH - - NL - - totalNumberOfClusters - - clusteringMethod - - latitudeOfCentralPointInClusterDomain - - longitudeOfCentralPointInClusterDomain - - radiusOfClusterDomain - - numberOfForecastsInTheCluster - - scaleFactorOfStandardDeviation - - scaledValueOfStandardDeviation - - scaleFactorOfDistanceFromEnsembleMean - - scaledValueOfDistanceFromEnsembleMean - - ensembleForecastNumbers - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 15: - groups: [parameter, generatingProcess, forecastTime, horizontal, spatialStatisticalProcessing, pointInTime ] - name: "Average, accumulation, extreme values, or other statistically-processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - statisticalProcess - - spatialProcessing - - numberOfPointsUsed - - 20: - groups: [parameter, generatingProcessType, radar] - name: "Radar product " - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - numberOfRadarSitesUsed - - indicatorOfUnitOfTimeRange - - siteLatitude - - siteLongitude - - siteElevation - - siteId - - siteId - - operatingMode - - reflectivityCalibrationConstant - - qualityControlIndicator - - clutterFilterIndicator - - constantAntennaElevationAngle - - accumulationInterval - - referenceReflectivityForEchoTop - - rangeBinSpacing - - radialAngularSpacing - # 30: - # name: "Satellite Product. NOTE: This template is deprecated. Template 4.31 should be used instead." - # deprecated: "use 31" - # keys: - # - parameterCategory - # - parameterNumber - # - typeOfGeneratingProcess - # - observationGeneratingProcessIdentifier - # - numberOfContributingSpectralBands - # - repeatFor: numberOfContributingSpectralBands - # values: - # - satelliteSeries - # - satelliteNumber - # - instrumentType - # - scaleFactorOfCentralWaveNumber - # - scaledValueOfCentralWaveNumber - 31: - groups: - - parameter - - generatingProcessType - - observationGeneratingProcess - - satellite - name: "Satellite Product" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - observationGeneratingProcessIdentifier - - numberOfContributingSpectralBands - - repeatFor: numberOfContributingSpectralBands - values: - - satelliteSeries - - satelliteNumber - - instrumentType - - scaleFactorOfCentralWaveNumber - - scaledValueOfCentralWaveNumber - 32: - groups: - - parameter - - generatingProcess - - forecastTime - - satellite - - pointInTime - name: "Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for synthetic satellite data" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - numberOfContributingSpectralBands - - repeatFor: numberOfContributingSpectralBands - values: - - satelliteSeries - - satelliteNumber - - instrumentType - - scaleFactorOfCentralWaveNumber - - scaledValueOfCentralWaveNumber - 33: - groups: - - parameter - - generatingProcess - - forecastTime - - satellite - - individualEnsembleForecast - - pointInTime - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - numberOfContributingSpectralBands - - repeatFor: numberOfContributingSpectralBands - values: - - satelliteSeries - - satelliteNumber - - instrumentType - - scaleFactorOfCentralWaveNumber - - scaledValueOfCentralWaveNumber - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - 34: - groups: - - parameter - - generatingProcess - - forecastTime - - satellite - - individualEnsembleForecast - - statisticalTimeRange - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - numberOfContributingSpectralBands - - repeatFor: numberOfContributingSpectralBands - values: - - satelliteSeries - - satelliteNumber - - instrumentType - - scaleFactorOfCentralWaveNumber - - scaledValueOfCentralWaveNumber - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 35: - groups: - - parameter - - generatingProcessType - - observationGeneratingProcess - - satelliteQualityValue - name: "satellite product with or without associated quality values" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - observationGeneratingProcessIdentifier - - qualityValueAssociatedWithParameter - - numberOfContributingSpectralBands - - repeatFor: numberOfContributingSpectralBands - values: - - satelliteSeries - - satelliteNumber - - instrumentType - - scaleFactorOfCentralWaveNumber - - scaledValueOfCentralWaveNumber - - 40: - groups: [parameter, chemical, generatingProcess, forecastTime, horizontal, pointInTime ] - name: "Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents" - keys: - - parameterCategory - - parameterNumber - - constituentType - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - 41: - groups: [parameter, chemical, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, pointInTime] - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents" - keys: - - parameterCategory - - parameterNumber - - constituentType - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - 42: - groups: [parameter, chemical, generatingProcess, forecastTime, horizontal, statisticalTimeRange ] - name: "Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or noncontinuous time interval for atmospheric chemical constituents " - keys: - - parameterCategory - - parameterNumber - - constituentType - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - 43: - groups: [parameter, chemical, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, statisticalTimeRange] - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents" - keys: - - parameterCategory - - parameterNumber - - constituentType - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - # 44: - # groups: [aerosol, instant, pointInTime ] - # name: "Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol" - # deprecated: use 48 - # keys: - # - parameterCategory - # - parameterNumber - # - aerosolType - # - typeOfSizeInterval - # - scaleFactorOfFirstSize - # - scaledValueOfFirstSize - # - scaleFactorOfSecondSize - # - scaledValueOfSecondSize - # - typeOfGeneratingProcess - # - backgroundProcess - # - generatingProcessIdentifier - # - hoursAfterDataCutoff - # - minutesAfterDataCutoff - # - indicatorOfUnitOfTimeRange - # - forecastTime - # - typeOfFirstFixedSurface - # - scaleFactorOfFirstFixedSurface - # - scaledValueOfFirstFixedSurface - # - typeOfSecondFixedSurface - # - scaleFactorOfSecondFixedSurface - # - scaledValueOfSecondFixedSurface - - 45: - groups: [parameter, aerosol, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, pointInTime] - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol" - keys: - - parameterCategory - - parameterNumber - - aerosolType - - typeOfSizeInterval - - scaleFactorOfFirstSize - - scaledValueOfFirstSize - - scaleFactorOfSecondSize - - scaledValueOfSecondSize - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - 46: - groups: [parameter, aerosol, generatingProcess, forecastTime, horizontal, statisticalTimeRange ] - name: "Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or noncontinuous time interval for aerosol" - keys: - - parameterCategory - - parameterNumber - - aerosolType - - typeOfSizeInterval - - scaleFactorOfFirstSize - - scaledValueOfFirstSize - - scaleFactorOfSecondSize - - scaledValueOfSecondSize - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - # 47: - # groups: [aerosol, statisticalTimeRange, individualEnsembleForecast] - # name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol" - # deprecated: use 85 - # keys: - # - parameterCategory - # - parameterNumber - # - typeOfGeneratingProcess - # - aerosolType - # - typeOfSizeInterval - # - scaleFactorOfFirstSize - # - scaledValueOfFirstSize - # - scaleFactorOfSecondSize - # - scaledValueOfSecondSize - # - backgroundProcess - # - generatingProcessIdentifier - # - hoursAfterDataCutoff - # - minutesAfterDataCutoff - # - indicatorOfUnitOfTimeRange - # - forecastTime - # - typeOfFirstFixedSurface - # - scaleFactorOfFirstFixedSurface - # - scaledValueOfFirstFixedSurface - # - typeOfSecondFixedSurface - # - scaleFactorOfSecondFixedSurface - # - scaledValueOfSecondFixedSurface - # - typeOfEnsembleForecast - # - perturbationNumber - # - numberOfForecastsInEnsemble - # - yearOfEndOfOverallTimeInterval - # - monthOfEndOfOverallTimeInterval - # - dayOfEndOfOverallTimeInterval - # - hourOfEndOfOverallTimeInterval - # - minuteOfEndOfOverallTimeInterval - # - secondOfEndOfOverallTimeInterval - # - numberOfTimeRange - # - repeatFor: numberOfTimeRange - # values: - # - numberOfMissingInStatisticalProcess - # - typeOfStatisticalProcessing - # - typeOfTimeIncrement - # - indicatorOfUnitForTimeRange - # - lengthOfTimeRange - # - indicatorOfUnitForTimeIncrement - # - timeIncrement - - 48: - groups: [parameter, aerosol_optical, generatingProcess, forecastTime, horizontal, pointInTime ] - name: "Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol" - keys: - - parameterCategory - - parameterNumber - - aerosolType - - typeOfSizeInterval - - scaleFactorOfFirstSize - - scaledValueOfFirstSize - - scaleFactorOfSecondSize - - scaledValueOfSecondSize - - typeOfWavelengthInterval - - scaleFactorOfFirstWavelength - - scaledValueOfFirstWavelength - - scaleFactorOfSecondWavelength - - scaledValueOfSecondWavelength - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - 49: - groups: [parameter, aerosol_optical, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, pointInTime] - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol" - keys: - - parameterCategory - - parameterNumber - - aerosolType - - typeOfSizeInterval - - scaleFactorOfFirstSize - - scaledValueOfFirstSize - - scaleFactorOfSecondSize - - scaledValueOfSecondSize - - typeOfWavelengthInterval - - scaleFactorOfFirstWavelength - - scaledValueOfFirstWavelength - - scaleFactorOfSecondWavelength - - scaledValueOfSecondWavelength - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - 51: - groups: [parameter, generatingProcess, forecastTime, horizontal, categorialForecast, pointInTime] - name: "Categorical forecasts at a horizontal level or in a horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - numberOfCategories - - repeatFor: numberOfCategories - values: - - codeFigure - - categoryType - - scaleFactorOfLowerLimit - - scaledValueOfLowerLimit - - scaleFactorOfUpperLimit - - scaledValueOfUpperLimit - - 53: - groups: - - parameter - - partitioned - - generatingProcess - - forecastTime - - horizontal - - pointInTime - name: "Partitioned parameters at a horizontal level or horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - partitionTable - - numberOfPartitions - - repeatFor: numberOfPartitions - values: - - partitionItems - - partitionNumber - - groups: - - generatingProcess - - forecastTime - - horizontal - - 54: - groups: - - parameter - - partitioned - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - pointInTime - name: "individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters" - keys: - - parameterCategory - - parameterNumber - - partitionTable - - numberOfPartitions - - repeatFor: numberOfPartitions - values: - - partitionItems - - partitionNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - 55: - groups: - - parameter - - spatioTemporalTile - - generatingProcess - - forecastTime - - horizontal - - pointInTime - name: "spatio–temporal changing tiles at a horizontal level or horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - tileClassification - - totalNumberOfTileAttributePairs - - numberOfUsedSpatialTiles - - tileIndex - - numberOfUsedTileAttributes - - attributeOfTile - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - # 56: - # groups: - # - parameter - # - spatioTemporalTile - # - generatingProcess - # - forecastTime - # - horizontal - # - perturbed - # - ensemble - # - pointInTime - # deprecated: true - # name: "individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio–temporal changing tile parameters" - # keys: - # - parameterCategory - # - parameterNumber - # - tileClassification - # - totalNumberOfTileAttributePairs - # - numberOfUsedSpatialTiles - # - tileIndex - # - numberOfUsedTileAttributes - # - attributeOfTile - # - typeOfGeneratingProcess - # - backgroundProcess - # - generatingProcessIdentifier - # - hoursAfterDataCutoff - # - minutesAfterDataCutoff - # - indicatorOfUnitOfTimeRange - # - forecastTime - # - typeOfFirstFixedSurface - # - scaleFactorOfFirstFixedSurface - # - scaledValueOfFirstFixedSurface - # - typeOfSecondFixedSurface - # - scaleFactorOfSecondFixedSurface - # - scaledValueOfSecondFixedSurface - # - perturbationNumber - # - numberOfForecastsInEnsemble - - - 57: - groups: - - parameter - - chemical_distribution - - generatingProcess - - forecastTime - - horizontal - - pointInTime - name: "analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function" - keys: - - parameterCategory - - parameterNumber - - constituentType - - numberOfModeOfDistribution - - modeNumber - - typeOfDistributionFunction - - numberOfDistributionFunctionParameters - - repeatFor: numberOfDistributionFunctionParameters - values: - - scaleFactorOfDistributionFunctionParameter - - scaledValueOfDistributionFunctionParameter - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - 58: - groups: - - parameter - - chemical_distribution - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - pointInTime - name: "individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function" - keys: - - parameterCategory - - parameterNumber - - constituentType - - numberOfModeOfDistribution - - modeNumber - - typeOfDistributionFunction - - numberOfDistributionFunctionParameters - - repeatFor: numberOfDistributionFunctionParameters - values: - - scaleFactorOfDistributionFunctionParameter - - scaledValueOfDistributionFunctionParameter - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - 59: - groups: - - parameter - - spatioTemporalTile - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - pointInTime - name: "individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio–temporal changing tile parameters" - keys: - - parameterCategory - - parameterNumber - - tileClassification - - totalNumberOfTileAttributePairs - - numberOfUsedSpatialTiles - - tileIndex - - numberOfUsedTileAttributes - - attributeOfTile - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - 60: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - reforecast - - pointInTime - name: "individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - YearOfModelVersion - - MonthOfModelVersion - - DayOfModelVersion - - HourOfModelVersion - - MinuteOfModelVersion - - SecondOfModelVersion - - 61: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - reforecast - - statisticalTimeRange - name: "individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non– continuous time interval" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - YearOfModelVersion - - MonthOfModelVersion - - DayOfModelVersion - - HourOfModelVersion - - MinuteOfModelVersion - - SecondOfModelVersion - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 62: - groups: - - parameter - - spatioTemporalTile - - generatingProcess - - forecastTime - - horizontal - - statisticalTimeRange - name: "average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non–continuous time interval for spatio–temporal changing tiles at a horizontal level or horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - tileClassification - - totalNumberOfTileAttributePairs - - numberOfUsedSpatialTiles - - tileIndex - - numberOfUsedTileAttributes - - attributeOfTile - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 63: - groups: - - parameter - - spatioTemporalTile - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - statisticalTimeRange - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non–continuous time interval for spatio–temporal changing tiles" - keys: - - parameterCategory - - parameterNumber - - tileClassification - - totalNumberOfTileAttributePairs - - numberOfUsedSpatialTiles - - tileIndex - - numberOfUsedTileAttributes - - attributeOfTile - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 67: - groups: - - parameter - - chemical_distribution - - generatingProcess - - forecastTime - - horizontal - - statisticalTimeRange - name: "average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non–continuous time interval for atmospheric chemical constituents based on a distribution function" - keys: - - parameterCategory - - parameterNumber - - constituentType - - numberOfModeOfDistribution - - modeNumber - - typeOfDistributionFunction - - numberOfDistributionFunctionParameters - - repeatFor: numberOfDistributionFunctionParameters - values: - - scaleFactorOfDistributionFunctionParameter - - scaledValueOfDistributionFunctionParameter - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 68: - groups: - - parameter - - chemical_distribution - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - statisticalTimeRange - name: "individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non– continuous time interval for atmospheric chemical constituents based on a distribution function" - keys: - - parameterCategory - - parameterNumber - - constituentType - - numberOfModeOfDistribution - - modeNumber - - typeOfDistributionFunction - - numberOfDistributionFunctionParameters - - repeatFor: numberOfDistributionFunctionParameters - values: - - scaleFactorOfDistributionFunctionParameter - - scaledValueOfDistributionFunctionParameter - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - - - 70: - groups: [ parameter, postProcess, generatingProcess, forecastTime, horizontal, pointInTime ] - name: "post–processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - inputProcessIdentifier - - inputOriginatingCentre - - typeOfPostProcessing - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - 71: - groups: [ parameter, postProcess, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, pointInTime ] - name: "post–processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - inputProcessIdentifier - - inputOriginatingCentre - - typeOfPostProcessing - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - 72: - groups: [ parameter, postProcess, generatingProcess, forecastTime, horizontal, statisticalTimeRange ] - name: "post–processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non–continuous time interval" - keys: - - parameterCategory - - parameterNumber - - inputProcessIdentifier - - inputOriginatingCentre - - typeOfPostProcessing - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 73: - groups: [ parameter, postProcess, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, statisticalTimeRange] - name: "post–processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non–continuous time interval" - keys: - - parameterCategory - - parameterNumber - - inputProcessIdentifier - - inputOriginatingCentre - - typeOfPostProcessing - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 76: - groups: [ parameter, chemical_sourceSink, generatingProcess, forecastTime, horizontal, pointInTime ] - name: "analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink" - keys: - - parameterCategory - - parameterNumber - - constituentType - - sourceSinkChemicalPhysicalProcess - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - 77: - groups: [ parameter, chemical_sourceSink, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, pointInTime ] - name: "individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink" - keys: - - parameterCategory - - parameterNumber - - constituentType - - sourceSinkChemicalPhysicalProcess - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - 78: - groups: [ parameter, chemical_sourceSink, generatingProcess, forecastTime, horizontal, statisticalTimeRange ] - name: "average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non–continuous time interval for atmospheric chemical constituents with source or sink" - keys: - - parameterCategory - - parameterNumber - - constituentType - - sourceSinkChemicalPhysicalProcess - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 79: - groups: [ parameter, chemical_sourceSink, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, statisticalTimeRange ] - name: "individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non– continuous time interval for atmospheric chemical constituents with source or sink" - keys: - - parameterCategory - - parameterNumber - - constituentType - - sourceSinkChemicalPhysicalProcess - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 80: - groups: - - parameter - - aerosol_sourceSink_optical - - generatingProcess - - forecastTime - - horizontal - - pointInTime - name: "analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink" - keys: - - parameterCategory - - parameterNumber - - aerosolType - - sourceSinkChemicalPhysicalProcess - - typeOfSizeInterval - - scaleFactorOfFirstSize - - scaledValueOfFirstSize - - scaleFactorOfSecondSize - - scaledValueOfSecondSize - - typeOfWavelengthInterval - - scaleFactorOfFirstWavelength - - scaledValueOfFirstWavelength - - scaleFactorOfSecondWavelength - - scaledValueOfSecondWavelength - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - 81: - groups: - - parameter - - aerosol_sourceSink_optical - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - pointInTime - name: "individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink" - keys: - - parameterCategory - - parameterNumber - - aerosolType - - sourceSinkChemicalPhysicalProcess - - typeOfSizeInterval - - scaleFactorOfFirstSize - - scaledValueOfFirstSize - - scaleFactorOfSecondSize - - scaledValueOfSecondSize - - typeOfWavelengthInterval - - scaleFactorOfFirstWavelength - - scaledValueOfFirstWavelength - - scaleFactorOfSecondWavelength - - scaledValueOfSecondWavelength - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - 82: - groups: [ parameter, aerosol_sourceSink, generatingProcess, forecastTime, horizontal, statisticalTimeRange ] - name: "average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non–continuous time interval for aerosol with source or sink" - keys: - - parameterCategory - - parameterNumber - - aerosolType - - sourceSinkChemicalPhysicalProcess - - typeOfSizeInterval - - scaleFactorOfFirstSize - - scaledValueOfFirstSize - - scaleFactorOfSecondSize - - scaledValueOfSecondSize - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - - # 83: - # groups: [aerosol_sourceSink, statisticalTimeRange, individualEnsembleForecast] - # deprecated: use 84 - # name: "individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non–continuous time interval for aerosol with source or sink" - # keys: - # - parameterCategory - # - parameterNumber - # - aerosolType - # - sourceSinkChemicalPhysicalProcess - # - typeOfSizeInterval - # - scaleFactorOfFirstSize - # - scaledValueOfFirstSize - # - scaleFactorOfSecondSize - # - scaledValueOfSecondSize - # - typeOfGeneratingProcess - # - backgroundProcess - # - generatingProcessIdentifier - # - hoursAfterDataCutoff - # - minutesAfterDataCutoff - # - indicatorOfUnitOfTimeRange - # - forecastTime - # - typeOfFirstFixedSurface - # - scaleFactorOfFirstFixedSurface - # - scaledValueOfFirstFixedSurface - # - typeOfSecondFixedSurface - # - scaleFactorOfSecondFixedSurface - # - scaledValueOfSecondFixedSurface - # - typeOfEnsembleForecast - # - perturbationNumber - # - numberOfForecastsInEnsemble - # - yearOfEndOfOverallTimeInterval - # - monthOfEndOfOverallTimeInterval - # - dayOfEndOfOverallTimeInterval - # - hourOfEndOfOverallTimeInterval - # - minuteOfEndOfOverallTimeInterval - # - secondOfEndOfOverallTimeInterval - # - numberOfTimeRange - # - repeatFor: numberOfTimeRange - # values: - # - numberOfMissingInStatisticalProcess - # - typeOfStatisticalProcessing - # - typeOfTimeIncrement - # - indicatorOfUnitForTimeRange - # - lengthOfTimeRange - # - indicatorOfUnitForTimeIncrement - # - timeIncrement - - - 84: - groups: [ parameter, aerosol_sourceSink, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, statisticalTimeRange ] - comment: like 83 without typeOfGeneratingProcess - name: "individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non–continuous time interval for aerosol with source or sink" - keys: - - parameterCategory - - parameterNumber - - aerosolType - - sourceSinkChemicalPhysicalProcess - - typeOfSizeInterval - - scaleFactorOfFirstSize - - scaledValueOfFirstSize - - scaleFactorOfSecondSize - - scaledValueOfSecondSize - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - - 85: - groups: [ parameter, aerosol, generatingProcess, forecastTime, horizontal, individualEnsembleForecast, statisticalTimeRange ] - comment: similar to 47 - just typeOfGeneratingProcess moved - name: "individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non–continuous time interval for aerosol" - keys: - - parameterCategory - - parameterNumber - - aerosolType - - typeOfSizeInterval - - scaleFactorOfFirstSize - - scaledValueOfFirstSize - - scaleFactorOfSecondSize - - scaledValueOfSecondSize - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 86: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - quantileForecast - - pointInTime - name: "quantileForecast forecasts at a horizontal level or in a horizontal layer at a point in time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - totalNumberOfQuantiles - - quantileValue - - 87: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - quantileForecast - - statisticalTimeRange - name: "quantileForecast forecasts at a horizontal level or in a horizontal layer in a continuous or non–continuous time interval" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - totalNumberOfQuantiles - - quantileValue - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - - 88: - groups: - - parameter - - generatingProcess - - horizontal - - localTime - - pointInTime - name: "analysis or forecast at a horizontal level or in a horizontal layer at a local time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - localTimeMethod - - numberOfForecastsUsedinLocalTime - - repeatFor: numberOfForecastsUsedinLocalTime - values: - - yearOfForecastUsedInLocalTime - - monthOfForecastUsedInLocalTime - - dayOfForecastUsedInLocalTime - - hourOfForecastUsedInLocalTime - - minuteOfForecastUsedInLocalTime - - secondOfForecastUsedInLocalTime - - indicatorOfUnitForForecastTime - - forecastTime - - numberOfTimeIncrementsOfForecastsUsedInLocalTime - - indicatorOfUnitForTimeIncrement - - timeIncrement - - - 91: - groups: [parameter, generatingProcess, forecastTime, horizontal, categorialForecast, statisticalTimeRange] - name: "Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval - validation" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - numberOfCategories - - repeatFor: numberOfCategories - values: - - codeFigure - - categoryType - - scaleFactorOfLowerLimit - - scaledValueOfLowerLimit - - scaleFactorOfUpperLimit - - scaledValueOfUpperLimit - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 92: - groups: - - parameter - - generatingProcess - - horizontal - - individualEnsembleForecast - - localTime - - pointInTime - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - localTimeMethod - - numberOfForecastsUsedinLocalTime - - repeatFor: numberOfForecastsUsedinLocalTime - values: - - yearOfForecastUsedInLocalTime - - monthOfForecastUsedInLocalTime - - dayOfForecastUsedInLocalTime - - hourOfForecastUsedInLocalTime - - minuteOfForecastUsedInLocalTime - - secondOfForecastUsedInLocalTime - - indicatorOfUnitForForecastTime - - forecastTime - - numberOfTimeIncrementsOfForecastsUsedInLocalTime - - indicatorOfUnitForTimeIncrement - - timeIncrement - - - 93: - groups: - - parameter - - postProcess - - generatingProcess - - horizontal - - localTime - - pointInTime - name: "Post–processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time" - keys: - - parameterCategory - - parameterNumber - - inputProcessIdentifier - - inputOriginatingCentre - - typeOfPostProcessing - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - localTimeMethod - - numberOfForecastsUsedinLocalTime - - repeatFor: numberOfForecastsUsedinLocalTime - values: - - yearOfForecastUsedInLocalTime - - monthOfForecastUsedInLocalTime - - dayOfForecastUsedInLocalTime - - hourOfForecastUsedInLocalTime - - minuteOfForecastUsedInLocalTime - - secondOfForecastUsedInLocalTime - - indicatorOfUnitForForecastTime - - forecastTime - - numberOfTimeIncrementsOfForecastsUsedInLocalTime - - indicatorOfUnitForTimeIncrement - - timeIncrement - - - 94: - groups: - - parameter - - postProcess - - generatingProcess - - horizontal - - individualEnsembleForecast - - localTime - - pointInTime - name: "Post–processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time" - keys: - - parameterCategory - - parameterNumber - - inputProcessIdentifier - - inputOriginatingCentre - - typeOfPostProcessing - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - localTimeMethod - - numberOfForecastsUsedinLocalTime - - repeatFor: numberOfForecastsUsedinLocalTime - values: - - yearOfForecastUsedInLocalTime - - monthOfForecastUsedInLocalTime - - dayOfForecastUsedInLocalTime - - hourOfForecastUsedInLocalTime - - minuteOfForecastUsedInLocalTime - - secondOfForecastUsedInLocalTime - - indicatorOfUnitForForecastTime - - forecastTime - - numberOfTimeIncrementsOfForecastsUsedInLocalTime - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 95: - groups: - - parameter - - generatingProcess - - horizontal - - localTime_statistical - name: "Average, accumulation, extreme values or other statistically processed value at a horizontal level or in a horizontal layer at a local time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfStatisticalProcessing - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - numberOfStatisticallyProcessedFieldsForLocalTime - - localTimeMethod - - numberOfForecastsUsedinLocalTime - - repeatFor: numberOfForecastsUsedinLocalTime - values: - - yearOfForecastUsedInLocalTime - - monthOfForecastUsedInLocalTime - - dayOfForecastUsedInLocalTime - - hourOfForecastUsedInLocalTime - - minuteOfForecastUsedInLocalTime - - secondOfForecastUsedInLocalTime - - indicatorOfUnitForForecastTime - - forecastTime - - numberOfTimeIncrementsOfForecastsUsedInLocalTime - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 96: - groups: - - parameter - - generatingProcess - - horizontal - - individualEnsembleForecast - - localTime_statistical - name: "Average, accumulation, extreme values or other statistically processed values of an individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a local time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - typeOfStatisticalProcessing - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - numberOfStatisticallyProcessedFieldsForLocalTime - - localTimeMethod - - numberOfForecastsUsedinLocalTime - - repeatFor: numberOfForecastsUsedinLocalTime - values: - - yearOfForecastUsedInLocalTime - - monthOfForecastUsedInLocalTime - - dayOfForecastUsedInLocalTime - - hourOfForecastUsedInLocalTime - - minuteOfForecastUsedInLocalTime - - secondOfForecastUsedInLocalTime - - indicatorOfUnitForForecastTime - - forecastTime - - numberOfTimeIncrementsOfForecastsUsedInLocalTime - - indicatorOfUnitForTimeIncrement - - timeIncrement - - - 97: - groups: - - parameter - - postProcess - - generatingProcess - - horizontal - - localTime_statistical - name: "Average, accumulation, extreme values or other statistically processed values of post–processing analysis or forecast at a horizontal level or in a horizontal layer at a local time" - keys: - - parameterCategory - - parameterNumber - - inputProcessIdentifier - - inputOriginatingCentre - - typeOfPostProcessing - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfStatisticalProcessing - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - numberOfStatisticallyProcessedFieldsForLocalTime - - localTimeMethod - - numberOfForecastsUsedinLocalTime - - repeatFor: numberOfForecastsUsedinLocalTime - values: - - yearOfForecastUsedInLocalTime - - monthOfForecastUsedInLocalTime - - dayOfForecastUsedInLocalTime - - hourOfForecastUsedInLocalTime - - minuteOfForecastUsedInLocalTime - - secondOfForecastUsedInLocalTime - - indicatorOfUnitForForecastTime - - forecastTime - - numberOfTimeIncrementsOfForecastsUsedInLocalTime - - indicatorOfUnitForTimeIncrement - - timeIncrement - - - 98: - groups: - - parameter - - postProcess - - generatingProcess - - horizontal - - individualEnsembleForecast - - localTime_statistical - name: "Average, accumulation, extreme values or other statistically processed values of a post–processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a local time" - keys: - - parameterCategory - - parameterNumber - - inputProcessIdentifier - - inputOriginatingCentre - - typeOfPostProcessing - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - typeOfStatisticalProcessing - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - numberOfStatisticallyProcessedFieldsForLocalTime - - localTimeMethod - - numberOfForecastsUsedinLocalTime - - repeatFor: numberOfForecastsUsedinLocalTime - values: - - yearOfForecastUsedInLocalTime - - monthOfForecastUsedInLocalTime - - dayOfForecastUsedInLocalTime - - hourOfForecastUsedInLocalTime - - minuteOfForecastUsedInLocalTime - - secondOfForecastUsedInLocalTime - - indicatorOfUnitForForecastTime - - forecastTime - - numberOfTimeIncrementsOfForecastsUsedInLocalTime - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 99: - groups: - - parameter - - waveSpectraCommon - - generatingProcess - - forecastTime - - waveSpectraList - - pointInTime - name: "Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions" - keys: - - parameterCategory - - parameterNumber - - waveDirectionNumber - - numberOfWaveDirections - - waveFrequencyNumber - - numberOfWaveFrequencies - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - scaleFactorOfWaveDirections - - repeatFor: numberOfWaveDirections - values: - - scaledValueOfWaveDirections - - scaleFactorOfWaveFrequencies - - repeatFor: numberOfWaveFrequencies - values: - - scaledValueOfWaveFrequencies - - 100: - groups: - - parameter - - waveSpectraCommon - - generatingProcess - - forecastTime - - individualEnsembleForecast - - waveSpectraList - - pointInTime - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions" - keys: - - parameterCategory - - parameterNumber - - waveDirectionNumber - - numberOfWaveDirections - - waveFrequencyNumber - - numberOfWaveFrequencies - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - scaleFactorOfWaveDirections - - repeatFor: numberOfWaveDirections - values: - - scaledValueOfWaveDirections - - scaleFactorOfWaveFrequencies - - repeatFor: numberOfWaveFrequencies - values: - - scaledValueOfWaveFrequencies - - 101: - groups: - - parameter - - waveSpectraCommon - - generatingProcess - - forecastTime - - waveSpectraFormula - - pointInTime - name: "Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae" - keys: - - parameterCategory - - parameterNumber - - waveDirectionNumber - - numberOfWaveDirections - - waveFrequencyNumber - - numberOfWaveFrequencies - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfWaveDirectionSequence - - numberOfWaveDirectionSequenceParameters - - repeatFor: numberOfWaveDirectionSequenceParameters - values: - - scaleFactorOfWaveDirectionSequenceParameter - - scaledValueOfWaveDirectionSequenceParameter - - typeOfWaveFrequencySequence - - numberOfWaveFrequencySequenceParameters - - repeatFor: numberOfWaveFrequencySequenceParameters - values: - - scaleFactorOfWaveFrequencySequenceParameter - - scaledValueOfWaveFrequencySequenceParameter - - 102: - groups: - - parameter - - waveSpectraCommon - - generatingProcess - - forecastTime - - individualEnsembleForecast - - waveSpectraFormula - - pointInTime - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae" - keys: - - parameterCategory - - parameterNumber - - waveDirectionNumber - - numberOfWaveDirections - - waveFrequencyNumber - - numberOfWaveFrequencies - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - typeOfWaveDirectionSequence - - numberOfWaveDirectionSequenceParameters - - repeatFor: numberOfWaveDirectionSequenceParameters - values: - - scaleFactorOfWaveDirectionSequenceParameter - - scaledValueOfWaveDirectionSequenceParameter - - typeOfWaveFrequencySequence - - numberOfWaveFrequencySequenceParameters - - repeatFor: numberOfWaveFrequencySequenceParameters - values: - - scaleFactorOfWaveFrequencySequenceParameter - - scaledValueOfWaveFrequencySequenceParameter - 103: - groups: - - parameter - - wavePeriodRange - - generatingProcess - - forecastTime - - horizontal - - pointInTime - name: "Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for waves selected by period range" - keys: - - parameterCategory - - parameterNumber - - typeOfWavePeriodInterval - - scaleFactorOfLowerWavePeriodLimit - - scaledValueOfLowerWavePeriodLimit - - scaleFactorOfUpperWavePeriodLimit - - scaledValueOfUpperWavePeriodLimit - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - 104: - groups: - - parameter - - wavePeriodRange - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - pointInTime - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for waves selected by period range" - keys: - - parameterCategory - - parameterNumber - - typeOfWavePeriodInterval - - scaleFactorOfLowerWavePeriodLimit - - scaledValueOfLowerWavePeriodLimit - - scaleFactorOfUpperWavePeriodLimit - - scaledValueOfUpperWavePeriodLimit - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - - 105: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - statisticalTimeRange - - referencePeriod - name: "Anomalies, significance and other derived products from an analysis or forecast in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - typeOfReferenceDataset - - typeOfRelationToReferenceDataset - - numberOfAdditionalParameterForReferencePeriod - - repeatFor: numberOfAdditionalParameterForReferencePeriod - values: - - scaleFactorOfAdditionalParameterForReferencePeriod - - scaledValueOfAdditionalParameterForReferencePeriod - - yearOfStartOfReferencePeriod - - monthOfStartOfReferencePeriod - - dayOfStartOfReferencePeriod - - hourOfStartOfReferencePeriod - - minuteOfStartOfReferencePeriod - - secondOfStartOfReferencePeriod - - sampleSizeOfReferencePeriod - - numberOfReferencePeriodTimeRanges - - repeatFor: numberOfReferencePeriodTimeRanges - values: - - typeOfStatisticalProcessingForTimeRangeForReferencePeriod - - indicatorOfUnitForTimeRangeForReferencePeriod - - lengthOfTimeRangeForReferencePeriod - - 106: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - statisticalTimeRange - - individualEnsembleForecast - - referencePeriod - name: "Anomalies, significance and other derived products from an individual ensemble forecast, control and perturbed in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - typeOfReferenceDataset - - typeOfRelationToReferenceDataset - - numberOfAdditionalParameterForReferencePeriod - - repeatFor: numberOfAdditionalParameterForReferencePeriod - values: - - scaleFactorOfAdditionalParameterForReferencePeriod - - scaledValueOfAdditionalParameterForReferencePeriod - - yearOfStartOfReferencePeriod - - monthOfStartOfReferencePeriod - - dayOfStartOfReferencePeriod - - hourOfStartOfReferencePeriod - - minuteOfStartOfReferencePeriod - - secondOfStartOfReferencePeriod - - sampleSizeOfReferencePeriod - - numberOfReferencePeriodTimeRanges - - repeatFor: numberOfReferencePeriodTimeRanges - values: - - typeOfStatisticalProcessingForTimeRangeForReferencePeriod - - indicatorOfUnitForTimeRangeForReferencePeriod - - lengthOfTimeRangeForReferencePeriod - - 107: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - statisticalTimeRange - - derivedEnsembleForecast - - referencePeriod - name: "Anomalies, significance and other derived products from derived forecasts based on all ensemble members in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - derivedForecast - - numberOfForecastsInEnsemble - - typeOfReferenceDataset - - typeOfRelationToReferenceDataset - - numberOfAdditionalParameterForReferencePeriod - - repeatFor: numberOfAdditionalParameterForReferencePeriod - values: - - scaleFactorOfAdditionalParameterForReferencePeriod - - scaledValueOfAdditionalParameterForReferencePeriod - - yearOfStartOfReferencePeriod - - monthOfStartOfReferencePeriod - - dayOfStartOfReferencePeriod - - hourOfStartOfReferencePeriod - - minuteOfStartOfReferencePeriod - - secondOfStartOfReferencePeriod - - sampleSizeOfReferencePeriod - - numberOfReferencePeriodTimeRanges - - repeatFor: numberOfReferencePeriodTimeRanges - values: - - typeOfStatisticalProcessingForTimeRangeForReferencePeriod - - indicatorOfUnitForTimeRangeForReferencePeriod - - lengthOfTimeRangeForReferencePeriod - - 108: - groups: - - parameter - - optical - - generatingProcess - - forecastTime - - horizontal - - pointInTime - name: "Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for generic optical products" - keys: - - parameterCategory - - parameterNumber - - typeOfWavelengthInterval - - scaleFactorOfFirstWavelength - - scaledValueOfFirstWavelength - - scaleFactorOfSecondWavelength - - scaledValueOfSecondWavelength - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - - 109: - groups: - - parameter - - optical - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - pointInTime - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for generic optical products" - keys: - - parameterCategory - - parameterNumber - - typeOfWavelengthInterval - - scaleFactorOfFirstWavelength - - scaledValueOfFirstWavelength - - scaleFactorOfSecondWavelength - - scaledValueOfSecondWavelength - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - - 110: - groups: - - parameter - - optical - - generatingProcess - - forecastTime - - horizontal - - statisticalTimeRange - name: "Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for generic optical products" - keys: - - parameterCategory - - parameterNumber - - typeOfWavelengthInterval - - scaleFactorOfFirstWavelength - - scaledValueOfFirstWavelength - - scaleFactorOfSecondWavelength - - scaledValueOfSecondWavelength - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - - 111: - groups: - - parameter - - optical - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - statisticalTimeRange - name: "Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for generic optical products" - keys: - - parameterCategory - - parameterNumber - - typeOfWavelengthInterval - - scaleFactorOfFirstWavelength - - scaledValueOfFirstWavelength - - scaleFactorOfSecondWavelength - - scaledValueOfSecondWavelength - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - - 112: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - statisticalTimeRange - - probabilityForecast - - referencePeriod - name: "Anomalies, significance and other derived products as probabilityForecast forecasts in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - forecastProbabilityNumber - - totalNumberOfForecastProbabilities - - probabilityType - - scaleFactorOfLowerLimit - - scaledValueOfLowerLimit - - scaleFactorOfUpperLimit - - scaledValueOfUpperLimit - - typeOfReferenceDataset - - typeOfRelationToReferenceDataset - - numberOfAdditionalParameterForReferencePeriod - - repeatFor: numberOfAdditionalParameterForReferencePeriod - values: - - scaleFactorOfAdditionalParameterForReferencePeriod - - scaledValueOfAdditionalParameterForReferencePeriod - - yearOfStartOfReferencePeriod - - monthOfStartOfReferencePeriod - - dayOfStartOfReferencePeriod - - hourOfStartOfReferencePeriod - - minuteOfStartOfReferencePeriod - - secondOfStartOfReferencePeriod - - sampleSizeOfReferencePeriod - - numberOfReferencePeriodTimeRanges - - repeatFor: numberOfReferencePeriodTimeRanges - values: - - typeOfStatisticalProcessingForTimeRangeForReferencePeriod - - indicatorOfUnitForTimeRangeForReferencePeriod - - lengthOfTimeRangeForReferencePeriod - - - 113: - groups: - - parameter - - generalisedTile - - generatingProcess - - forecastTime - - horizontal - - pointInTime - name: Generalised tiles at a horizontal level or horizontal layer at a point in time - keys: - - parameterCategory - - parameterNumber - - tileClassification - - typeOfTile - - numberOfUsedSpatialTiles - - numberOfUsedTileAttributeCombinationsForTypeOfTile - - numberOfUsedTileAttributesForTileAttributeCombination - - repeatFor: numberOfUsedTileAttributesForTileAttributeCombination - values: - - attributeOfTile - - totalNumberOfTileAttributeCombinations - - tileIndex - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - - 114: - groups: - - parameter - - generalisedTile - - generatingProcess - - forecastTime - - horizontal - - statisticalTimeRange - name: Average, accumulation, and/or extreme values or other statistically processed values on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval - keys: - - parameterCategory - - parameterNumber - - tileClassification - - typeOfTile - - numberOfUsedSpatialTiles - - numberOfUsedTileAttributeCombinationsForTypeOfTile - - numberOfUsedTileAttributesForTileAttributeCombination - - repeatFor: numberOfUsedTileAttributesForTileAttributeCombination - values: - - attributeOfTile - - totalNumberOfTileAttributeCombinations - - tileIndex - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - - 115: - groups: - - parameter - - generalisedTile - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - pointInTime - name: Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer at a point in time - keys: - - parameterCategory - - parameterNumber - - tileClassification - - typeOfTile - - numberOfUsedSpatialTiles - - numberOfUsedTileAttributeCombinationsForTypeOfTile - - numberOfUsedTileAttributesForTileAttributeCombination - - repeatFor: numberOfUsedTileAttributesForTileAttributeCombination - values: - - attributeOfTile - - totalNumberOfTileAttributeCombinations - - tileIndex - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - extend: perturbed - - extend: ensemble - - - 116: - groups: - - parameter - - generalisedTile - - generatingProcess - - forecastTime - - horizontal - - individualEnsembleForecast - - statisticalTimeRange - name: Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval - keys: - - parameterCategory - - parameterNumber - - tileClassification - - typeOfTile - - numberOfUsedSpatialTiles - - numberOfUsedTileAttributeCombinationsForTypeOfTile - - numberOfUsedTileAttributesForTileAttributeCombination - - repeatFor: numberOfUsedTileAttributesForTileAttributeCombination - values: - - attributeOfTile - - totalNumberOfTileAttributeCombinations - - tileIndex - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - extend: perturbed - - extend: ensemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - - 117: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - largeIndividualEnsembleForecast - - pointInTime - name: Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - extend: perturbed - - extend: ensemble - - 118: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - largeIndividualEnsembleForecast - - statisticalTimeRange - name: Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - extend: perturbed - - extend: ensemble - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - 119: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - probabilityEnsembleForecast - - pointInTime - name: Probability forecasts from large ensembles at a horizontal level or in a horizontal layer at a point in time - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - extend: ensemble - - extend: probabilityForecast - - 120: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - probabilityEnsembleForecast - - statisticalTimeRange - name: Probability forecasts from large ensembles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - extend: ensemble - - extend: probabilityForecast - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - - 121: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - probabilityEnsembleForecast - - pointInTime - - focalStatistics - name: Probability forecasts with spatiotemporal processing based on focal (moving window) statistics at a horizontal level or in a horizontal layer at a point in time - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - extend: ensemble - - extend: probabilityForecast - - spatialVicinityType - - numberOfSpatialVicinityValues - - repeatFor: numberOfSpatialVicinityValues - values: - - spatialVicinityValue - - spatialVicinityProcessing - - spatialVicinityProcessingArgument1 - - spatialVicinityProcessingArgument2 - - spatialVicinityMissingData - - temporalVicinityProcessing - - temporalVicinityUnit - - temporalVicinityTowardsPast - - temporalVicinityTowardsFuture - - - - 122: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - probabilityEnsembleForecast - - statisticalTimeRange - - focalStatistics - name: Probability forecasts with spatiotemporal processing based on focal (moving window) statistics at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - extend: ensemble - - extend: probabilityForecast - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - spatialVicinityType - - numberOfSpatialVicinityValues - - repeatFor: numberOfSpatialVicinityValues - values: - - spatialVicinityValue - - spatialVicinityProcessing - - spatialVicinityProcessingArgument1 - - spatialVicinityProcessingArgument2 - - spatialVicinityMissingData - - temporalVicinityProcessing - - temporalVicinityUnit - - temporalVicinityTowardsPast - - temporalVicinityTowardsFuture - - 123: - groups: - - parameter - - generatingProcess - - forecastTime - - horizontal - - statisticalTimeRange - - probabilityEnsembleForecast - - referencePeriod - - focalStatistics - name: Probability forecasts from large ensembles with spatiotemporal processing based on focal (moving window) statistics in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - typeOfEnsembleForecast - - extend: ensemble - - extend: probabilityForecast - - typeOfReferenceDataset - - typeOfRelationToReferenceDataset - - numberOfAdditionalParameterForReferencePeriod - - repeatFor: numberOfAdditionalParameterForReferencePeriod - values: - - scaleFactorOfAdditionalParameterForReferencePeriod - - scaledValueOfAdditionalParameterForReferencePeriod - - yearOfStartOfReferencePeriod - - monthOfStartOfReferencePeriod - - dayOfStartOfReferencePeriod - - hourOfStartOfReferencePeriod - - minuteOfStartOfReferencePeriod - - secondOfStartOfReferencePeriod - - sampleSizeOfReferencePeriod - - numberOfReferencePeriodTimeRanges - - repeatFor: numberOfReferencePeriodTimeRanges - values: - - typeOfStatisticalProcessingForTimeRangeForReferencePeriod - - indicatorOfUnitForTimeRangeForReferencePeriod - - lengthOfTimeRangeForReferencePeriod - - spatialVicinityType - - numberOfSpatialVicinityValues - - repeatFor: numberOfSpatialVicinityValues - values: - - spatialVicinityValue - - spatialVicinityProcessing - - spatialVicinityProcessingArgument1 - - spatialVicinityProcessingArgument2 - - spatialVicinityMissingData - - temporalVicinityProcessing - - temporalVicinityUnit - - temporalVicinityTowardsPast - - temporalVicinityTowardsFuture - - 124: - groups: - - parameter - - chemical_radioNuclide - - generatingProcess - - forecastTime - - horizontal - - pointInTime - name: Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for radionuclides - keys: - - parameterCategory - - parameterNumber - - constituentType - - sourceSinkChemicalPhysicalProcess - - transportModelUsed - - requestedByEntity - - scenarioOrigin - - NWPused - - releaseStartYear - - releaseStartMonth - - releaseStartDay - - releaseStartHour - - releaseStartMinute - - releaseStartSecond - - wallClockInitialTimeOfExecutionYear - - wallClockInitialTimeOfExecutionMonth - - wallClockInitialTimeOfExecutionDay - - wallClockInitialTimeOfExecutionHour - - wallClockInitialTimeOfExecutionMinute - - wallClockInitialTimeOfExecutionSecond - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - 125: - groups: - - parameter - - chemical_radioNuclide - - generatingProcess - - forecastTime - - horizontal - - pointInTime - - individualEnsembleForecast - name: Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for radionuclides - keys: - - parameterCategory - - parameterNumber - - constituentType - - sourceSinkChemicalPhysicalProcess - - transportModelUsed - - requestedByEntity - - scenarioOrigin - - NWPused - - releaseStartYear - - releaseStartMonth - - releaseStartDay - - releaseStartHour - - releaseStartMinute - - releaseStartSecond - - wallClockInitialTimeOfExecutionYear - - wallClockInitialTimeOfExecutionMonth - - wallClockInitialTimeOfExecutionDay - - wallClockInitialTimeOfExecutionHour - - wallClockInitialTimeOfExecutionMinute - - wallClockInitialTimeOfExecutionSecond - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - - 126: - groups: - - parameter - - chemical_radioNuclide - - generatingProcess - - forecastTime - - horizontal - - statisticalTimeRange - name: Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for radionuclides - keys: - - parameterCategory - - parameterNumber - - constituentType - - sourceSinkChemicalPhysicalProcess - - transportModelUsed - - requestedByEntity - - scenarioOrigin - - NWPused - - releaseStartYear - - releaseStartMonth - - releaseStartDay - - releaseStartHour - - releaseStartMinute - - releaseStartSecond - - wallClockInitialTimeOfExecutionYear - - wallClockInitialTimeOfExecutionMonth - - wallClockInitialTimeOfExecutionDay - - wallClockInitialTimeOfExecutionHour - - wallClockInitialTimeOfExecutionMinute - - wallClockInitialTimeOfExecutionSecond - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - 127: - groups: - - parameter - - chemical_radioNuclide - - generatingProcess - - forecastTime - - horizontal - - statisticalTimeRange - - individualEnsembleForecast - name: Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for radionuclides - keys: - - parameterCategory - - parameterNumber - - constituentType - - sourceSinkChemicalPhysicalProcess - - transportModelUsed - - requestedByEntity - - scenarioOrigin - - NWPused - - releaseStartYear - - releaseStartMonth - - releaseStartDay - - releaseStartHour - - releaseStartMinute - - releaseStartSecond - - wallClockInitialTimeOfExecutionYear - - wallClockInitialTimeOfExecutionMonth - - wallClockInitialTimeOfExecutionDay - - wallClockInitialTimeOfExecutionHour - - wallClockInitialTimeOfExecutionMinute - - wallClockInitialTimeOfExecutionSecond - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - extend: singleTimeRangeAndIncrement - - typeOfEnsembleForecast - - perturbationNumber - - numberOfForecastsInEnsemble - - - 143: - groups: - - parameter - - generatingProcess - - forecastTime - - pointInTime - - randomPatterns - - horizontal - - largeIndividualEnsembleForecast - name: Random fields used in an ensemble forecast, at a horizontal level or in a horizontal layer at a point in time - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange # Will be named to indicatorOfUnitForForecastTime consistently - - forecastTime - - randomFieldNumber - - totalNumberOfRandomFields - - spatioTemporalScaleNumber - - totalNumberOfSpatioTemporalScales - - scaledValueOfSpatialScale - - scaleFactorOfSpatialScale - - scaledValueOfTemporalScale - - scaleFactorOfTemporalScale - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - typeOfEnsembleForecast - - extend: perturbed - - extend: ensemble - - - 254: - groups: - - ccittIA5 - name: "CCITT IA5 character string" - keys: - - parameterCategory - - parameterNumber - - numberOfCharacters - - 1000: - groups: - - crossSect - - pointInTime - name: "cross–section of analysis and forecast at a point in time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - 1001: - groups: - - crossSectTimeRange - name: "cross–section of averaged or otherwise statistically processed analysis or forecast over a range of time" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement - - 1002: - groups: - - crossSectLatLong - - pointInTime - name: "cross–section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - horizontalDimensionProcessed - - treatmentOfMissingData - - typeOfStatisticalProcessing - - startOfRange - - endOfRange - - numberOfDataValues - - 1100: - groups: - - hovmoeller - - pointInTime - name: "Hovmöller–type grid with no averaging or other statistical processing" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - 1101: - groups: - - hovmoeller - - statisticalTimeRange - name: "Hovmöller–type grid with averaging or other statistical processing" - keys: - - parameterCategory - - parameterNumber - - typeOfGeneratingProcess - - backgroundProcess - - generatingProcessIdentifier - - hoursAfterDataCutoff - - minutesAfterDataCutoff - - indicatorOfUnitOfTimeRange - - forecastTime - - typeOfFirstFixedSurface - - scaleFactorOfFirstFixedSurface - - scaledValueOfFirstFixedSurface - - typeOfSecondFixedSurface - - scaleFactorOfSecondFixedSurface - - scaledValueOfSecondFixedSurface - - yearOfEndOfOverallTimeInterval - - monthOfEndOfOverallTimeInterval - - dayOfEndOfOverallTimeInterval - - hourOfEndOfOverallTimeInterval - - minuteOfEndOfOverallTimeInterval - - secondOfEndOfOverallTimeInterval - - numberOfTimeRange - - repeatFor: numberOfTimeRange - values: - - numberOfMissingInStatisticalProcess - - typeOfStatisticalProcessing - - typeOfTimeIncrement - - indicatorOfUnitForTimeRange - - lengthOfTimeRange - - indicatorOfUnitForTimeIncrement - - timeIncrement diff --git a/share/multiom/mappings/CMakeLists.txt b/share/multiom/mappings/CMakeLists.txt deleted file mode 100644 index 559d20367..000000000 --- a/share/multiom/mappings/CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ -file(GLOB mapping_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/mappings/fix") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/multiom/mappings/rules") - -# Mapping rules used to fix wrong information coming from IFS -add_subdirectory(fix) - -# Mapping rules used to inject information or to configure the encoding -add_subdirectory(rules) - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${mapping_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/mappings/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${mapping_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/mappings - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/mappings/fix/CMakeLists.txt b/share/multiom/mappings/fix/CMakeLists.txt deleted file mode 100644 index 61df53c94..000000000 --- a/share/multiom/mappings/fix/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -file(GLOB mapping_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${mapping_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/mappings/fix/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${mapping_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/mappings/fix - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/mappings/fix/fix-139-to-sol.yaml b/share/multiom/mappings/fix/fix-139-to-sol.yaml deleted file mode 100644 index c2a55249d..000000000 --- a/share/multiom/mappings/fix/fix-139-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 139 to levtype sol level 1' - -tag: 'map-139-to-sol-1' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 139 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 1 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 260360 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-170-to-sol.yaml b/share/multiom/mappings/fix/fix-170-to-sol.yaml deleted file mode 100644 index 865bdd006..000000000 --- a/share/multiom/mappings/fix/fix-170-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 170 to levtype sol level 2' - -tag: 'map-170-to-sol-2' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 170 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 2 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 260360 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-183-to-sol.yaml b/share/multiom/mappings/fix/fix-183-to-sol.yaml deleted file mode 100644 index ed2698889..000000000 --- a/share/multiom/mappings/fix/fix-183-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 183 to levtype sol level 3' - -tag: 'map-183-to-sol-3' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 183 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 3 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 260360 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-236-to-sol.yaml b/share/multiom/mappings/fix/fix-236-to-sol.yaml deleted file mode 100644 index c5ca07ff3..000000000 --- a/share/multiom/mappings/fix/fix-236-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 236 to levtype sol level 4' - -tag: 'map-236-to-sol-4' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 236 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 4 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 260360 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-35-to-sol.yaml b/share/multiom/mappings/fix/fix-35-to-sol.yaml deleted file mode 100644 index 73c2facc0..000000000 --- a/share/multiom/mappings/fix/fix-35-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 35 to levtype sol level 1' - -tag: 'map-35-to-sol-1' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 35 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 1 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 262024 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-36-to-sol.yaml b/share/multiom/mappings/fix/fix-36-to-sol.yaml deleted file mode 100644 index aeae5c73a..000000000 --- a/share/multiom/mappings/fix/fix-36-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 36 to levtype sol level 2' - -tag: 'map-36-to-sol-2' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 36 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 2 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 262024 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-37-to-sol.yaml b/share/multiom/mappings/fix/fix-37-to-sol.yaml deleted file mode 100644 index 23fc85ec0..000000000 --- a/share/multiom/mappings/fix/fix-37-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 37 to levtype sol level 3' - -tag: 'map-37-to-sol-3' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 37 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 3 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 262024 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-38-to-sol.yaml b/share/multiom/mappings/fix/fix-38-to-sol.yaml deleted file mode 100644 index 0a9e51a40..000000000 --- a/share/multiom/mappings/fix/fix-38-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 38 to levtype sol level 4' - -tag: 'map-38-to-sol-4' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 38 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 4 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 262024 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-39-to-sol.yaml b/share/multiom/mappings/fix/fix-39-to-sol.yaml deleted file mode 100644 index fa6b06b2b..000000000 --- a/share/multiom/mappings/fix/fix-39-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 39 to levtype sol level 1' - -tag: 'map-39-to-sol-1' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 39 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 1 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 260199 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-40-to-sol.yaml b/share/multiom/mappings/fix/fix-40-to-sol.yaml deleted file mode 100644 index b17ee8f49..000000000 --- a/share/multiom/mappings/fix/fix-40-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 40 to levtype sol level 2' - -tag: 'map-40-to-sol-2' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 40 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 2 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 260199 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-41-to-sol.yaml b/share/multiom/mappings/fix/fix-41-to-sol.yaml deleted file mode 100644 index b6002ad76..000000000 --- a/share/multiom/mappings/fix/fix-41-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 41 to levtype sol level 3' - -tag: 'map-41-to-sol-3' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 41 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 3 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 260199 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-42-to-sol.yaml b/share/multiom/mappings/fix/fix-42-to-sol.yaml deleted file mode 100644 index eaca314f6..000000000 --- a/share/multiom/mappings/fix/fix-42-to-sol.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'map 42 to levtype sol level 3' - -tag: 'map-42-to-sol-3' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 42 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 4 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 260199 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-U-100m.yaml b/share/multiom/mappings/fix/fix-U-100m.yaml deleted file mode 100644 index f2ea8311a..000000000 --- a/share/multiom/mappings/fix/fix-U-100m.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'modify wind-speed U at 100 m' - -tag: 'change-wind-speed-U-100m' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 228246 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 100 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 131 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'hl' \ No newline at end of file diff --git a/share/multiom/mappings/fix/fix-U-200m.yaml b/share/multiom/mappings/fix/fix-U-200m.yaml deleted file mode 100644 index 5adee1925..000000000 --- a/share/multiom/mappings/fix/fix-U-200m.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'modify wind-speed U at 200 m' - -tag: 'change-wind-speed-U-200m' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 228239 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 200 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 131 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'hl' \ No newline at end of file diff --git a/share/multiom/mappings/fix/fix-V-100m.yaml b/share/multiom/mappings/fix/fix-V-100m.yaml deleted file mode 100644 index 307dd6d21..000000000 --- a/share/multiom/mappings/fix/fix-V-100m.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'modify wind-speed V at 100 m' - -tag: 'change-wind-speed-V-100m' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 228247 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 100 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 132 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'hl' \ No newline at end of file diff --git a/share/multiom/mappings/fix/fix-V-200m.yaml b/share/multiom/mappings/fix/fix-V-200m.yaml deleted file mode 100644 index cac7158f0..000000000 --- a/share/multiom/mappings/fix/fix-V-200m.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'modify wind-speed V at 200 m' - -tag: 'change-wind-speed-V-200m' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 228240 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 200 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 132 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'hl' diff --git a/share/multiom/mappings/fix/fix-WindSpeed-100m.yaml b/share/multiom/mappings/fix/fix-WindSpeed-100m.yaml deleted file mode 100644 index 4cdc69071..000000000 --- a/share/multiom/mappings/fix/fix-WindSpeed-100m.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'modify wind-speed at 100 m' - -tag: 'change-wind-speed-100m' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 228249 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 100 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 10 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'hl' diff --git a/share/multiom/mappings/fix/fix-WindSpeed-200m.yaml b/share/multiom/mappings/fix/fix-WindSpeed-200m.yaml deleted file mode 100644 index a31d3d557..000000000 --- a/share/multiom/mappings/fix/fix-WindSpeed-200m.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: 'modify wind-speed at 200 m' - -tag: 'change-wind-speed-200m' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - value: 228241 - - type: 'levtype' - operation: 'match' - value: 'sfc' - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 200 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 10 - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'hl' diff --git a/share/multiom/mappings/fix/fix-change-tables-version-for-chem-accum.yaml b/share/multiom/mappings/fix/fix-change-tables-version-for-chem-accum.yaml deleted file mode 100644 index 78801097f..000000000 --- a/share/multiom/mappings/fix/fix-change-tables-version-for-chem-accum.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'fix-change-tables-version-for-chem-accum' - -tag: 'ERA6' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - values: [ - '228080:228082', '233032:233035', '235062:235064' - ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-int' - name: 'tables-version' - expression: - type: 'constant' - value: 30 \ No newline at end of file diff --git a/share/multiom/mappings/fix/fix-change-tables-version-for-chem-instant.yaml b/share/multiom/mappings/fix/fix-change-tables-version-for-chem-instant.yaml deleted file mode 100644 index b522087a1..000000000 --- a/share/multiom/mappings/fix/fix-change-tables-version-for-chem-instant.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'fix-change-tables-version-for-chem-instan' - -tag: 'ERA6' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - values: [ - '228083:228085' - ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-int' - name: 'tables-version' - expression: - type: 'constant' - value: 30 \ No newline at end of file diff --git a/share/multiom/mappings/fix/fix-cloudparam-164.yaml b/share/multiom/mappings/fix/fix-cloudparam-164.yaml deleted file mode 100644 index 18d526c39..000000000 --- a/share/multiom/mappings/fix/fix-cloudparam-164.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'map the total cloud cover param to new param' - -tag: 'total cloud cover param' - -filter: - type: 'param' - operation: 'match' - values: [ 164 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-float' - name: 'scale-factor' - expression: - type: 'constant' - value: 100.0 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 228164 diff --git a/share/multiom/mappings/fix/fix-cloudparam-186.yaml b/share/multiom/mappings/fix/fix-cloudparam-186.yaml deleted file mode 100644 index 3e95150f0..000000000 --- a/share/multiom/mappings/fix/fix-cloudparam-186.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'map the low cloud param to new param' - -tag: 'low cloud param' - -filter: - type: 'param' - operation: 'match' - values: [ 186 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-float' - name: 'scale-factor' - expression: - type: 'constant' - value: 100.0 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 3073 diff --git a/share/multiom/mappings/fix/fix-cloudparam-187.yaml b/share/multiom/mappings/fix/fix-cloudparam-187.yaml deleted file mode 100644 index e9c76a988..000000000 --- a/share/multiom/mappings/fix/fix-cloudparam-187.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'map the medium cloud param to new param' - -tag: 'medium cloud param' - -filter: - type: 'param' - operation: 'match' - values: [ 187 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-float' - name: 'scale-factor' - expression: - type: 'constant' - value: 100.0 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 3074 diff --git a/share/multiom/mappings/fix/fix-cloudparam-188.yaml b/share/multiom/mappings/fix/fix-cloudparam-188.yaml deleted file mode 100644 index fecd7f589..000000000 --- a/share/multiom/mappings/fix/fix-cloudparam-188.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'map the high cloud param to new param' - -tag: 'high cloud param' - -filter: - type: 'param' - operation: 'match' - values: [ 188 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-float' - name: 'scale-factor' - expression: - type: 'constant' - value: 100.0 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 3075 diff --git a/share/multiom/mappings/fix/fix-convective-precip-param-143.yaml b/share/multiom/mappings/fix/fix-convective-precip-param-143.yaml deleted file mode 100644 index 1351eaecc..000000000 --- a/share/multiom/mappings/fix/fix-convective-precip-param-143.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'map the convective precip param to new param' - -tag: 'convective precip param' - -filter: - type: 'param' - operation: 'match' - values: [ 143 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-float' - name: 'scale-factor' - expression: - type: 'constant' - value: 1000.0 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 228143 diff --git a/share/multiom/mappings/fix/fix-height-above-ground-10m.yaml b/share/multiom/mappings/fix/fix-height-above-ground-10m.yaml deleted file mode 100644 index 498368bc9..000000000 --- a/share/multiom/mappings/fix/fix-height-above-ground-10m.yaml +++ /dev/null @@ -1,31 +0,0 @@ -name: 'modify heightAboveGround fields on levtype sfc and levelist 10' - -tag: 'fix-height-above-ground-10m' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - values: [ 228029, 228131, 228132, 165, 166, 207 ] - - type: 'levtype' - operation: 'match' - value: 'sfc' - - type: 'levelist' - operation: 'match' - value: 0 - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 10 \ No newline at end of file diff --git a/share/multiom/mappings/fix/fix-height-above-ground-2m.yaml b/share/multiom/mappings/fix/fix-height-above-ground-2m.yaml deleted file mode 100644 index 16640c4ed..000000000 --- a/share/multiom/mappings/fix/fix-height-above-ground-2m.yaml +++ /dev/null @@ -1,31 +0,0 @@ -name: 'modify heightAboveGround fields on levtype sfc and levelist 2' - -tag: 'fix-height-above-ground-2m' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - values: [ 167, 168, 174096, 228037 ] - - type: 'levtype' - operation: 'match' - value: 'sfc' - - type: 'levelist' - operation: 'match' - value: 0 - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 2 \ No newline at end of file diff --git a/share/multiom/mappings/fix/fix-heightAboveSea.yaml b/share/multiom/mappings/fix/fix-heightAboveSea.yaml deleted file mode 100644 index 1f0525ba4..000000000 --- a/share/multiom/mappings/fix/fix-heightAboveSea.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'modify the bits per value for wave heightAboveSea' - -tag: 'change bits per value' - -filter: - type: 'param' - operation: 'match' - values: [ 140233, 140245, 140249 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-int' - name: 'bits-per-value' - expression: - type: 'constant' - value: 24 - - type: 'message-int' - name: 'levelist' - expression: - type: 'constant' - value: 10 \ No newline at end of file diff --git a/share/multiom/mappings/fix/fix-map-to-sol.yaml b/share/multiom/mappings/fix/fix-map-to-sol.yaml deleted file mode 100644 index b06107909..000000000 --- a/share/multiom/mappings/fix/fix-map-to-sol.yaml +++ /dev/null @@ -1,40 +0,0 @@ -name: 'map-to-sol' - -tag: 'map-to-sol' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - values: [ 33, 238, 228038, 228141, 260360, 262000, 262024, 260199 ] - - - type: 'levtype' - operation: 'match' - value: 'sfc' - - - type: 'composed' - operation: 'all' - filters: - - type: 'levelist' - operation: 'has' - - - type: 'levelist' - operation: 'not-equal' - value: 0 - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'levtype' - expression: - type: 'enum' - name: 'levtype' - value: 'sol' diff --git a/share/multiom/mappings/fix/fix-runoff-water-param-205.yaml b/share/multiom/mappings/fix/fix-runoff-water-param-205.yaml deleted file mode 100644 index e0d8fb8e8..000000000 --- a/share/multiom/mappings/fix/fix-runoff-water-param-205.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'map the total cloud cover param to new param' - -tag: 'total cloud cover param' - -filter: - type: 'param' - operation: 'match' - values: [ 205 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-float' - name: 'scale-factor' - expression: - type: 'constant' - value: 1000.0 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 231002 diff --git a/share/multiom/mappings/fix/fix-snowcover-260289.yaml b/share/multiom/mappings/fix/fix-snowcover-260289.yaml deleted file mode 100644 index ea5cef1e7..000000000 --- a/share/multiom/mappings/fix/fix-snowcover-260289.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'map snow cover fraction to snow cover %' - -tag: 'snow cover' - -filter: - type: 'param' - operation: 'match' - values: [ 260289 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-float' - name: 'scale-factor' - expression: - type: 'constant' - value: 100.0 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 260038 diff --git a/share/multiom/mappings/fix/fix-snowfall-water-equiv-param-144.yaml b/share/multiom/mappings/fix/fix-snowfall-water-equiv-param-144.yaml deleted file mode 100644 index fc81d8eae..000000000 --- a/share/multiom/mappings/fix/fix-snowfall-water-equiv-param-144.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'map the snowfall water equiv param to new param' - -tag: 'snowfall water equiv param' - -filter: - type: 'param' - operation: 'match' - values: [ 144 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-float' - name: 'scale-factor' - expression: - type: 'constant' - value: 1000.0 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 228144 diff --git a/share/multiom/mappings/fix/fix-timespan-max-2t.yaml b/share/multiom/mappings/fix/fix-timespan-max-2t.yaml deleted file mode 100644 index bc6dd605c..000000000 --- a/share/multiom/mappings/fix/fix-timespan-max-2t.yaml +++ /dev/null @@ -1,23 +0,0 @@ - -name: 'map fixed-range-max 2m temperature to generic param' - -tag: 'fixed-range max 2m temperature' - -filter: - type: 'param' - operation: 'match' - values: [ 121, 228026, 201 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 237167 diff --git a/share/multiom/mappings/fix/fix-timespan-max-cape.yaml b/share/multiom/mappings/fix/fix-timespan-max-cape.yaml deleted file mode 100644 index b017b2e5e..000000000 --- a/share/multiom/mappings/fix/fix-timespan-max-cape.yaml +++ /dev/null @@ -1,23 +0,0 @@ - -name: 'map fixed-range-max cape to generic param' - -tag: 'fixed-range max cape' - -filter: - type: 'param' - operation: 'match' - values: [ 228035 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 237117 diff --git a/share/multiom/mappings/fix/fix-timespan-max-mucapes.yaml b/share/multiom/mappings/fix/fix-timespan-max-mucapes.yaml deleted file mode 100644 index 234a6dcea..000000000 --- a/share/multiom/mappings/fix/fix-timespan-max-mucapes.yaml +++ /dev/null @@ -1,23 +0,0 @@ - -name: 'map fixed-range-max cape shear to generic param' - -tag: 'fixed-range max cape shear' - -filter: - type: 'param' - operation: 'match' - values: [ 228036 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 237321 diff --git a/share/multiom/mappings/fix/fix-timespan-max-precip-rate.yaml b/share/multiom/mappings/fix/fix-timespan-max-precip-rate.yaml deleted file mode 100644 index 3f19d9134..000000000 --- a/share/multiom/mappings/fix/fix-timespan-max-precip-rate.yaml +++ /dev/null @@ -1,23 +0,0 @@ - -name: 'map fixed-range-max precip rate to generic param' - -tag: 'fixed-range max precip rate' - -filter: - type: 'param' - operation: 'match' - values: [ 228222, 228224, 228226 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 237055 diff --git a/share/multiom/mappings/fix/fix-timespan-max-wind-gust.yaml b/share/multiom/mappings/fix/fix-timespan-max-wind-gust.yaml deleted file mode 100644 index a56c4328a..000000000 --- a/share/multiom/mappings/fix/fix-timespan-max-wind-gust.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: 'map fixed-range-max wind gust to generic param' - -tag: 'fixed-range max wind gust' - -filter: - type: 'param' - operation: 'match' - values: [ 123, 228028, 49 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 237318 diff --git a/share/multiom/mappings/fix/fix-timespan-mean-flash-density.yaml b/share/multiom/mappings/fix/fix-timespan-mean-flash-density.yaml deleted file mode 100644 index 396fc4a61..000000000 --- a/share/multiom/mappings/fix/fix-timespan-mean-flash-density.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: 'map fixed-range-mean lightning flash density to generic param' - -tag: 'fixed-range mean lightning flash density' - -filter: - type: 'param' - operation: 'match' - values: [ 228051, 228057, 228058 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 235326 diff --git a/share/multiom/mappings/fix/fix-timespan-min-2t.yaml b/share/multiom/mappings/fix/fix-timespan-min-2t.yaml deleted file mode 100644 index 61a4600e1..000000000 --- a/share/multiom/mappings/fix/fix-timespan-min-2t.yaml +++ /dev/null @@ -1,23 +0,0 @@ - -name: 'map fixed-range-min 2m temperature to generic param' - -tag: 'fixed-range min 2m temperature' - -filter: - type: 'param' - operation: 'match' - values: [ 122, 228027, 202 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 238167 diff --git a/share/multiom/mappings/fix/fix-timespan-min-precip-rate.yaml b/share/multiom/mappings/fix/fix-timespan-min-precip-rate.yaml deleted file mode 100644 index fe0aea60b..000000000 --- a/share/multiom/mappings/fix/fix-timespan-min-precip-rate.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: 'map fixed-range-min param to generic param' - -tag: 'fixed-range min' - -filter: - type: 'param' - operation: 'match' - values: [ 228223, 228225, 228227 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 238055 diff --git a/share/multiom/mappings/fix/fix-timespan-mode-precip.yaml b/share/multiom/mappings/fix/fix-timespan-mode-precip.yaml deleted file mode 100644 index 4edc54444..000000000 --- a/share/multiom/mappings/fix/fix-timespan-mode-precip.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: 'map fixed-range-mode precip type to generic param' - -tag: 'fixed-range mode precipitation type' - -filter: - type: 'param' - operation: 'match' - values: [ 260320, 260321, 260339 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 260683 diff --git a/share/multiom/mappings/fix/fix-timespan-severity-precip.yaml b/share/multiom/mappings/fix/fix-timespan-severity-precip.yaml deleted file mode 100644 index 78afcf6b4..000000000 --- a/share/multiom/mappings/fix/fix-timespan-severity-precip.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: 'map fixed-range-severity precip type to generic param' - -tag: 'fixed-range severity precipitation type' - -filter: - type: 'param' - operation: 'match' - values: [ 260318, 260319, 260338 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 260682 diff --git a/share/multiom/mappings/fix/fix-total-precip-param-228.yaml b/share/multiom/mappings/fix/fix-total-precip-param-228.yaml deleted file mode 100644 index e649888cc..000000000 --- a/share/multiom/mappings/fix/fix-total-precip-param-228.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'map the total param to new param' - -tag: 'total precip param' - -filter: - type: 'param' - operation: 'match' - values: [ 228 ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-float' - name: 'scale-factor' - expression: - type: 'constant' - value: 1000.0 - - type: 'message-int' - name: 'param' - expression: - type: 'constant' - value: 228228 diff --git a/share/multiom/mappings/mapping-rules-wmo.yaml b/share/multiom/mappings/mapping-rules-wmo.yaml deleted file mode 100644 index 98fd30e7a..000000000 --- a/share/multiom/mappings/mapping-rules-wmo.yaml +++ /dev/null @@ -1,55 +0,0 @@ -mapping-rules: - - # - # Fix ifs output - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-heightAboveSea.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-U-200m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-V-200m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-U-100m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-V-100m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-WindSpeed-100m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-WindSpeed-200m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-height-above-ground-10m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-height-above-ground-2m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-map-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-change-tables-version-for-chem-accum.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-change-tables-version-for-chem-instant.yaml' - - - # - # Map deprecated GRIB1 parameters to GRIB2 parameters - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-max-wind-gust.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-max-precip-rate.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-min-precip-rate.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-max-2t.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-min-2t.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-max-cape.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-max-mucapes.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-mean-flash-density.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-mode-precip.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-severity-precip.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-35-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-36-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-37-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-38-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-39-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-40-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-41-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-42-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-139-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-170-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-183-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-236-to-sol.yaml' - - - # - # Convert units to WMO standard - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-cloudparam-186.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-cloudparam-187.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-cloudparam-188.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-cloudparam-164.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-convective-precip-param-143.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-runoff-water-param-205.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-snowfall-water-equiv-param-144.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-total-precip-param-228.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-snowcover-260289.yaml' diff --git a/share/multiom/mappings/mapping-rules.yaml b/share/multiom/mappings/mapping-rules.yaml deleted file mode 100644 index 838566b0e..000000000 --- a/share/multiom/mappings/mapping-rules.yaml +++ /dev/null @@ -1,47 +0,0 @@ -mapping-rules: - - # - # Fix ifs output - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-heightAboveSea.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-U-200m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-V-200m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-U-100m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-V-100m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-WindSpeed-100m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-WindSpeed-200m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-height-above-ground-10m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-height-above-ground-2m.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-map-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-change-tables-version-for-chem-accum.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-change-tables-version-for-chem-instant.yaml' - - - # - # Map deprecated GRIB1 parameters to GRIB2 parameters - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-max-wind-gust.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-max-precip-rate.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-min-precip-rate.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-max-2t.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-min-2t.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-max-cape.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-max-mucapes.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-mean-flash-density.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-mode-precip.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-timespan-severity-precip.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-35-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-36-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-37-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-38-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-39-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-40-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-41-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-42-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-139-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-170-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-183-to-sol.yaml' - - file: '{IFS_INSTALL_DIR}/share/multiom/mappings/fix/fix-236-to-sol.yaml' - - - # - # Inject bits-per-value - #- file: '{IFS_INSTALL_DIR}/share/multiom/mappings/rules/fix-wave-bits-per-value.yaml' diff --git a/share/multiom/mappings/rules/CMakeLists.txt b/share/multiom/mappings/rules/CMakeLists.txt deleted file mode 100644 index 81daa9dcd..000000000 --- a/share/multiom/mappings/rules/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -file(GLOB mapping_rules RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.yaml") - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${mapping_rules}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_CURRENT_BINARY_DIR}/${rule} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${rule} - ${CMAKE_BINARY_DIR}/share/multiom/mappings/rules/${rule} - COPYONLY) -endforeach() - - -install( - FILES ${mapping_rules} - DESTINATION ${MULTIOM_CONFIG_DIR}/mappings/rules - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/mappings/rules/fix-wave-bits-per-value-s1.yaml b/share/multiom/mappings/rules/fix-wave-bits-per-value-s1.yaml deleted file mode 100644 index 87b53325e..000000000 --- a/share/multiom/mappings/rules/fix-wave-bits-per-value-s1.yaml +++ /dev/null @@ -1,34 +0,0 @@ -name: 'modify the bits per value for wave surface at step > 1' - -tag: 'change bits per value wave surface at step > 1 ' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - values: [ - '140098:140105', '140112:140129', '140207:140209', - '140211:140212', '140214:140232', '140234:140239', 140244, - '140252:140254' - ] - - - type: 'step' - operation: 'greater-than' - treshold: 1 - - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-int' - name: 'bits-per-value' - expression: - type: 'constant' - value: 24 diff --git a/share/multiom/mappings/rules/fix-wave-bits-per-value.yaml b/share/multiom/mappings/rules/fix-wave-bits-per-value.yaml deleted file mode 100644 index 533d46b28..000000000 --- a/share/multiom/mappings/rules/fix-wave-bits-per-value.yaml +++ /dev/null @@ -1,29 +0,0 @@ -name: 'modify the bits per value for wave surface at step <= 0' - -tag: 'change bits per value wave surface at step <= 0' - -filter: - type: 'composed' - operation: 'all' - filters: - - type: 'param' - operation: 'match' - values: [ - '140098:140105', '140112:140129', '140207:140209', - '140211:140212', '140214:140232', '140234:140239', - 140244, '140251:140254' - ] - -assignment: - type: 'composed' - chained: true - assignments: - - type: 'copy' - - type: 'composed' - chained: false - assignments: - - type: 'parametrization-int' - name: 'bits-per-value' - expression: - type: 'constant' - value: 24 \ No newline at end of file diff --git a/share/multiom/output-manager-cfg-an.yaml b/share/multiom/output-manager-cfg-an.yaml index 2a91019e0..eed2c6d63 100644 --- a/share/multiom/output-manager-cfg-an.yaml +++ b/share/multiom/output-manager-cfg-an.yaml @@ -6,10 +6,7 @@ dump-fortran-data-reproducer: grib-header-to-multio: - samples-path: '{IFS_INSTALL_DIR}/share/multiom/samples' multio-plans-file: '{IFS_INSTALL_DIR}/share/multiom/plans/multio-sink-only-plan.yaml' - mapping-rules-file: '{IFS_INSTALL_DIR}/share/multiom/mappings/mapping-rules.yaml' - encoding-rules-file: '{IFS_INSTALL_DIR}/share/multiom/encodings/encoding-rules-an.yaml' log-path: '{MULTIO_LOG_PATH}' default-sink: 'message-to-file' verbose: false diff --git a/share/multiom/output-manager-cfg-fc.yaml b/share/multiom/output-manager-cfg-fc.yaml index f8605da3b..66c913a26 100644 --- a/share/multiom/output-manager-cfg-fc.yaml +++ b/share/multiom/output-manager-cfg-fc.yaml @@ -6,10 +6,7 @@ dump-fortran-data-reproducer: grib-header-to-multio: - samples-path: '{IFS_INSTALL_DIR}/share/multiom/samples' multio-plans-file: '{IFS_INSTALL_DIR}/share/multiom/plans/multio-sink-only-plan.yaml' - mapping-rules-file: '{IFS_INSTALL_DIR}/share/multiom/mappings/mapping-rules.yaml' - encoding-rules-file: '{IFS_INSTALL_DIR}/share/multiom/encodings/encoding-rules-fc.yaml' log-path: '{MULTIO_LOG_PATH}' default-sink: 'message-to-file' verbose: true diff --git a/share/multiom/output-manager-cfg.yaml b/share/multiom/output-manager-cfg.yaml index c67af6b82..fe30b11ac 100644 --- a/share/multiom/output-manager-cfg.yaml +++ b/share/multiom/output-manager-cfg.yaml @@ -6,10 +6,7 @@ dump-fortran-data-reproducer: grib-header-to-multio: - samples-path: '{IFS_INSTALL_DIR}/share/multiom/samples' multio-plans-file: '{IFS_INSTALL_DIR}/share/multiom/plans/multio-sink-only-plan.yaml' - mapping-rules-file: '{IFS_INSTALL_DIR}/share/multiom/mappings/mapping-rules.yaml' - encoding-rules-file: '{IFS_INSTALL_DIR}/share/multiom/encodings/encoding-rules.yaml' log-path: '{MULTIO_LOG_PATH}' default-sink: 'message-to-file' verbose: false @@ -18,10 +15,7 @@ grib-header-to-multio: model-data-to-multio: - samples-path: '{IFS_INSTALL_DIR}/share/multiom/samples' multio-plans-file: '{IFS_INSTALL_DIR}/share/multiom/plans/multio-empty-plan.yaml' - mapping-rules-file: '{IFS_INSTALL_DIR}/share/multiom/mappings/mapping-rules.yaml' - encoding-rules-file: '{IFS_INSTALL_DIR}/share/multiom/encodings/encoding-rules.yaml' log-path: '{MULTIO_LOG_PATH}' verbose: false profile: false diff --git a/share/multiom/samples/CMakeLists.txt b/share/multiom/samples/CMakeLists.txt deleted file mode 100644 index 25409640e..000000000 --- a/share/multiom/samples/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -file(GLOB samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.tmpl") - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(sample ${samples}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${sample} - ${CMAKE_CURRENT_BINARY_DIR}/${sample} - COPYONLY) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${sample} - ${CMAKE_BINARY_DIR}/share/multiom/samples/${sample} - COPYONLY) -endforeach() - - -install( - FILES ${samples} - DESTINATION ${MULTIOM_CONFIG_DIR}/samples - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/share/multiom/samples/sample.tmpl b/share/multiom/samples/sample.tmpl deleted file mode 100644 index cd563e2f1..000000000 Binary files a/share/multiom/samples/sample.tmpl and /dev/null differ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 854f64893..3eb322ce4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,8 +2,6 @@ add_subdirectory( multio ) if ( BUILD_MULTIOM ) add_subdirectory( multiom ) - add_subdirectory( multio/mars2grib ) - add_subdirectory( multio/action/encode-mtg2 ) endif() # Include api to defer dependencies diff --git a/src/multio/action/CMakeLists.txt b/src/multio/action/CMakeLists.txt index d496b1b77..49bbf5780 100644 --- a/src/multio/action/CMakeLists.txt +++ b/src/multio/action/CMakeLists.txt @@ -7,6 +7,7 @@ add_subdirectory(aggregate) add_subdirectory(transport) add_subdirectory(sink) add_subdirectory(encode) +add_subdirectory(encode-mtg2) add_subdirectory(single-field-sink) add_subdirectory(print) add_subdirectory(mask) diff --git a/src/multio/action/encode-mtg2/CMakeLists.txt b/src/multio/action/encode-mtg2/CMakeLists.txt index b057c604b..2b72becfb 100644 --- a/src/multio/action/encode-mtg2/CMakeLists.txt +++ b/src/multio/action/encode-mtg2/CMakeLists.txt @@ -17,8 +17,8 @@ ecbuild_add_library( PUBLIC_LIBS multio - multio-mars2grib multio-mars2mars eccodes atlas + metkit ) diff --git a/src/multio/action/encode-mtg2/EncodeMtg2.cc b/src/multio/action/encode-mtg2/EncodeMtg2.cc index b0d7fd893..7412b4511 100644 --- a/src/multio/action/encode-mtg2/EncodeMtg2.cc +++ b/src/multio/action/encode-mtg2/EncodeMtg2.cc @@ -11,36 +11,34 @@ #include "EncodeMtg2.h" #include -#include +#include "eckit/config/LocalConfiguration.h" #include "eckit/exception/Exceptions.h" #include "multio/action/encode-mtg2/AtlasGeoSetter.h" #include "multio/action/encode-mtg2/EncodeMtg2Exception.h" #include "multio/datamod/MarsMiscGeo.h" +#include "multio/datamod/core/EntryDumper.h" #include "multio/datamod/core/EntryParser.h" #include "multio/datamod/core/Record.h" -#include "multio/mars2grib/api/RawAPI.h" #include "multio/mars2mars/Rules.h" #include "multio/message/Parametrization.h" #include "multio/util/PrecisionTag.h" -namespace multio::action { +namespace multio::action::encode_mtg2 { namespace dm = multio::datamod; using message::Message; using message::Peer; -mars2grib::RawOptions mapOpts(EncodeMtg2Options opts) { - mars2grib::RawOptions ret; - ret.cached = opts.cached; - return ret; -}; - EncodeMtg2::EncodeMtg2(const ComponentConfiguration& compConf) : - ChainedAction{compConf}, opts_{cf::parseActionConfig(compConf)}, mars2grib_{mapOpts(opts_)} {} + ChainedAction{compConf}, opts_{cf::parseActionConfig(compConf)}, encoder_{} { + if (opts_.cached) { + throw eckit::NotImplemented{"Encoder cache is currently not implemented!", Here()}; + } +} void EncodeMtg2::executeImpl(Message msg) { @@ -49,94 +47,76 @@ void EncodeMtg2::executeImpl(Message msg) { return; } + if (msg.payload().size() == 0) { + throw EncodeMtg2Exception("Message has empty payload - no values to encode", Here()); + } + auto& md = msg.metadata(); - { - // Read and set unscoped mars keys - auto marsRec = dm::readRecord(md); - - // Read scoped misc keys - auto scopedMiscRec = dm::scopeRecord(dm::MiscRecord{}); - dm::readRecord(scopedMiscRec, md); - // Write unscoped misc keys - auto miscRec = dm::unscopeRecord(std::move(scopedMiscRec)); - - auto scopedGeo = dm::getGeometryRecord(marsRec); - - // If grid.. check if atlas is given. - if (marsRec.grid.isSet()) { - std::string scope{std::visit([](const auto& k) { return dm::getRecordScope(k); }, scopedGeo)}; - const auto& global = message::Parametrization::instance().get(); - // Fetch atlas and store in global parametrization (by scoping keys...) - // Scoping here may be refactored - if (opts_.geoFromAtlas && (global.find(scope) == global.end())) { - extract::AtlasGeoSetter::handleGrid(scope, marsRec.grid.get()); - } + // Read and set unscoped mars keys + auto marsRec = dm::readRecord(md); + + // Read scoped misc keys + auto scopedMiscRec = dm::scopeRecord(dm::MiscRecord{}); + dm::readRecord(scopedMiscRec, md); + // Write unscoped misc keys + auto miscRec = dm::unscopeRecord(std::move(scopedMiscRec)); + + auto scopedGeom = dm::getGeometryRecord(marsRec); + + // If grid.. check if atlas is given. + if (marsRec.grid.isSet()) { + std::string scope{std::visit([](const auto& k) { return dm::getRecordScope(k); }, scopedGeom)}; + const auto& global = message::Parametrization::instance().get(); + // Fetch atlas and store in global parametrization (by scoping keys...) + // Scoping here may be refactored + if (opts_.geoFromAtlas && (global.find(scope) == global.end())) { + extract::AtlasGeoSetter::handleGrid(scope, marsRec.grid.get()); } + } - // Read & unscope geo keys from metadata - auto geo = std::visit( - [&](auto&& geoRec) -> dm::Geometry { - dm::readRecord(geoRec, md); - return unscopeRecord(std::move(geoRec)); - }, - std::move(scopedGeo)); - - - // Apply mappings - auto mappingResult = mars2mars::applyMappings(mars2mars::allRules(), marsRec, miscRec); - + // Read & unscope geo keys from metadata + auto geomRec = std::visit( + [&](auto&& scopedGeom) -> dm::Geometry { + dm::readRecord(scopedGeom, md); + return unscopeRecord(std::move(scopedGeom)); + }, + std::move(scopedGeom)); + + // Apply mappings + auto mappingResult = mars2mars::applyMappings(mars2mars::allRules(), marsRec, miscRec); + + const auto mars = dm::dumpRecord(marsRec); + const auto misc = dm::dumpRecord(miscRec); + const auto geom + = std::visit([](const auto& geomRec) { return dm::dumpRecord(geomRec); }, geomRec); + + executeNext(dispatchPrecisionTag(msg.precision(), [&](auto pt) { + using Precision = typename decltype(pt)::type; + msg.payload().acquire(); + auto values = static_cast(msg.payload().modifyData()); + size_t size = msg.payload().size() / sizeof(Precision); + + // Check if values need scaling + if (mappingResult && mappingResult->valuesScaleFactor) { + ASSERT(values); + + const auto scaleFactor = *(mappingResult->valuesScaleFactor); + std::transform(values, values + size, values, + [&](const Precision& value) -> Precision { return value * scaleFactor; }); + } - std::unique_ptr sample = mars2grib_.getHandle(marsRec, miscRec, geo); + // Call the GRIB2 encoder in metkit + const auto sample = encoder_.encode(mars, misc, geom, values, size); - if (msg.payload().size() == 0) { - throw EncodeMtg2Exception("Message has empty payload - no values to encode", Here()); - } + eckit::Buffer buf{sample->messageSize()}; + sample->copyInto(reinterpret_cast(buf.data()), buf.size()); - // ecCodes does not support setting float values (yet) - auto setValuesAsDouble = [&] (const auto* data, size_t size) { - using Precision = std::decay_t; - if constexpr (std::is_same_v) { - sample->set("values", metkit::codes::Span(data, size)); - } - else { - sample->set("values", std::vector{data, data+size}); - } - }; - - executeNext(dispatchPrecisionTag(msg.precision(), [&](auto pt) { - using Precision = typename decltype(pt)::type; - size_t size = msg.payload().size() / sizeof(Precision); - - // Check if values need scaling - if (mappingResult && mappingResult->valuesScaleFactor) { - msg.payload().acquire(); - auto values = static_cast(msg.payload().modifyData()); - ASSERT(values); - - const auto scaleFactor = *(mappingResult->valuesScaleFactor); - std::transform(values, values + size, values, - [&](const Precision& value) -> Precision { return value * scaleFactor; }); - - setValuesAsDouble(values, size); - } - else { - // No scaling - auto values = static_cast(msg.payload().data()); - setValuesAsDouble(values, size); - } - - // The +32 is related to bug - // TODO(pgeier) Track bug ECC-2130: https://jira.ecmwf.int/browse/ECC-2130 - eckit::Buffer buf{sample->messageSize()}; - sample->copyInto(reinterpret_cast(buf.data()), buf.size()); - - // TODO(pgeier) write mapped metadata - return Message{Message::Header{Message::Tag::Field, Peer{msg.source()}, Peer{msg.destination()}, - dm::dumpRecord(marsRec)}, - std::move(buf)}; - })); - } + // TODO(pgeier) write mapped metadata + return Message{Message::Header{Message::Tag::Field, Peer{msg.source()}, Peer{msg.destination()}, + dm::dumpRecord(marsRec)}, + std::move(buf)}; + })); } void EncodeMtg2::print(std::ostream& os) const { @@ -146,4 +126,4 @@ void EncodeMtg2::print(std::ostream& os) const { static ActionBuilder EncodeMtg2Builder("encode-mtg2"); -} // namespace multio::action +} // namespace multio::action::encode_mtg2 diff --git a/src/multio/action/encode-mtg2/EncodeMtg2.h b/src/multio/action/encode-mtg2/EncodeMtg2.h index efb361b75..4799b2028 100644 --- a/src/multio/action/encode-mtg2/EncodeMtg2.h +++ b/src/multio/action/encode-mtg2/EncodeMtg2.h @@ -10,20 +10,19 @@ #pragma once - +#include "metkit/mars2grib/api/Mars2Grib.h" #include "multio/action/ChainedAction.h" -#include "multio/mars2grib/api/RawAPI.h" #include "multio/util/config/Parser.h" -namespace multio::action { +namespace multio::action::encode_mtg2 { namespace cf = multio::util::config; //---------------------------------------------------------------------------------------------------------------------- struct EncodeMtg2Options { - bool cached = true; + bool cached = false; bool geoFromAtlas = false; static constexpr auto fields_ @@ -48,11 +47,11 @@ class EncodeMtg2 : public ChainedAction { // TODO pgeier this option will be renamed and the action should get it own struct with parsing capabilities again EncodeMtg2Options opts_; - mars2grib::Mars2GribRaw mars2grib_; + metkit::mars2grib::Mars2Grib encoder_; }; //---------------------------------------------------------------------------------------------------------------------- -} // namespace multio::action +} // namespace multio::action::encode_mtg2 diff --git a/src/multio/datamod/AtlasGeo.h b/src/multio/datamod/AtlasGeo.h index a0be1a07b..2eca955ad 100644 --- a/src/multio/datamod/AtlasGeo.h +++ b/src/multio/datamod/AtlasGeo.h @@ -76,9 +76,9 @@ struct SetKeysFromAtlas { { auto tmp = gaussianGrid.nx(); - std::vector pl(tmp.size(), 0); + std::vector pl(tmp.size(), 0); for (int i = 0; i < tmp.size(); ++i) { - pl[i] = long(tmp[i]); + pl[i] = static_cast(tmp[i]); } geoGG.pl.set(std::move(pl)); } diff --git a/src/multio/mars2grib/MarsCachedKeys.h b/src/multio/datamod/MarsCachedKeys.h similarity index 72% rename from src/multio/mars2grib/MarsCachedKeys.h rename to src/multio/datamod/MarsCachedKeys.h index 2073c3c9b..47fcc0899 100644 --- a/src/multio/mars2grib/MarsCachedKeys.h +++ b/src/multio/datamod/MarsCachedKeys.h @@ -11,16 +11,13 @@ #pragma once -#include "multio/datamod/MarsKeys.h" #include "multio/datamod/MarsMiscGeo.h" #include "multio/datamod/core/Compare.h" #include "multio/datamod/core/Hash.h" #include "multio/datamod/core/Print.h" -namespace multio::mars2grib { - -namespace dm = multio::datamod; +namespace multio::datamod { //----------------------------------------------------------------------------- // MARS encoder hash keys @@ -31,20 +28,20 @@ namespace dm = multio::datamod; // However with this approach it is made explicit that there is a further logic happening // that should be distinguished from the existing FullMarsRecord. -struct MarsCacheRecord: dm::FullMarsRecord { +struct MarsCacheRecord: FullMarsRecord { static constexpr std::string_view record_name_ = "mars-cache"; - static void applyDefaults(mars2grib::MarsCacheRecord& cacheKeys) { - if (cacheKeys.levtype.isSet() && cacheKeys.levtype.get() == dm::LevType::ML) { + static void applyDefaults(MarsCacheRecord& cacheKeys) { + if (cacheKeys.levtype.isSet() && cacheKeys.levtype.get() == LevType::ML) { cacheKeys.levelist.unset(); } - + cacheKeys.step.unset(); cacheKeys.direction.unset(); cacheKeys.frequency.unset(); // Explicitly acquire because all the whole data structure is ment to be stored in a container - dm::acquireRecord(cacheKeys); + acquireRecord(cacheKeys); } }; @@ -54,15 +51,15 @@ struct MarsCacheRecord: dm::FullMarsRecord { namespace std { template <> -struct equal_to : multio::datamod::EqualToRecord {}; +struct equal_to : multio::datamod::EqualToRecord {}; template <> -struct not_equal_to : multio::datamod::NotEqualToRecord {}; +struct not_equal_to : multio::datamod::NotEqualToRecord {}; template <> -struct hash : multio::datamod::HashRecord {}; +struct hash : multio::datamod::HashRecord {}; } // namespace std namespace multio::util { template <> -struct Print : multio::datamod::PrintRecord {}; +struct Print : multio::datamod::PrintRecord {}; } // namespace multio::util diff --git a/src/multio/mars2grib/CMakeLists.txt b/src/multio/mars2grib/CMakeLists.txt deleted file mode 100644 index 26a41482f..000000000 --- a/src/multio/mars2grib/CMakeLists.txt +++ /dev/null @@ -1,47 +0,0 @@ -ecbuild_add_library( - TARGET multio-mars2grib - - TYPE SHARED # Due to reliance on factory self registration this library cannot be static - - SOURCES - Mars2GribException.cc - Mars2GribException.h - MarsCachedKeys.h - EncoderCache.cc - EncoderCache.h - EncoderConf.h - Rules.cc - Rules.h - api/RawAPI.cc - api/RawAPI.h - api/StableAPI.cc - api/StableAPI.h - multiom/MultIOMDict.cc - multiom/MultIOMDict.h - multiom/MultIOMRawEncoder.cc - multiom/MultIOMRawEncoder.h - rules/ParamMatcher.h - rules/Matcher.h - rules/Setter.h - rules/Rule.h - rules/Rule.cc - sections/SectionSetter.cc - sections/SectionSetter.h - sections/SectionTypes.cc - sections/SectionTypes.h - sections/Level.cc - sections/Level.h - generated/InferPDT.h - generated/InferPDTTest.h - - PRIVATE_INCLUDES - ${ECKIT_INCLUDE_DIRS} - - CONDITION - - PUBLIC_LIBS - multio - multiom-encoders - eccodes - atlas # To infer geo .... will be replaced by eckit-geo in future -) diff --git a/src/multio/mars2grib/EncoderCache.cc b/src/multio/mars2grib/EncoderCache.cc deleted file mode 100644 index 3ed6a7235..000000000 --- a/src/multio/mars2grib/EncoderCache.cc +++ /dev/null @@ -1,193 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#include "multio/mars2grib/EncoderCache.h" -#include "multio/datamod/AtlasGeo.h" -#include "multio/datamod/MarsMiscGeo.h" -#include "multio/datamod/core/EntryDumper.h" -#include "multio/datamod/core/EntryParser.h" -#include "multio/datamod/core/Record.h" -#include "multio/mars2grib/Mars2GribException.h" -#include "multio/mars2grib/Rules.h" -#include "multio/mars2grib/multiom/MultIOMDict.h" - -#include "multio/util/Print.h" - -#include - -namespace multio::mars2grib { - -namespace dm = multio::datamod; - -namespace { - -std::unique_ptr defaultSample() { - // Basically GRIB2.tmpl from eccodes but without local section - static const std::vector data_{ - {0x47, 0x52, 0x49, 0x42, 0xff, 0xff, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, - 0x00, 0x15, 0x01, 0x00, 0x62, 0x00, 0x00, 0x04, 0x00, 0x01, 0x07, 0xd7, 0x03, 0x17, 0x0c, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x48, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x28, 0x06, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x05, 0x3c, 0xb1, 0xf7, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x85, 0x3c, 0xb1, 0xf7, 0x15, 0x4a, 0x3f, 0xac, 0x00, 0x2a, 0xec, 0x48, 0x00, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x22, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x01, 0x86, 0xa0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, - 0x00, 0x00, 0x15, 0x05, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0xff, 0x00, 0x00, 0x00, 0x05, 0x07, 0x37, 0x37, 0x37, 0x37}}; - - return metkit::codes::codesHandleFromMessage(data_); -} - -std::unique_ptr prepareSample(std::unique_ptr sample, - const dm::FullMarsRecord& marsKeys) { - - switch (marsKeys.repres.get()) { - case dm::Repres::SH: { - // https://confluence.ecmwf.int/display/ECC/ecCodes+developer+FAQ+-+GRIB#ecCodesdeveloperFAQGRIB-GRIB:HowcanIconvertthesampleGRIB2.tmpltosphericalharmonics? - sample->set("numberOfDataPoints", 6); - sample->set("numberOfValues", 6); - sample->set("bitsPerValue", 16); - sample->set("typeOfFirstFixedSurface", 105); - sample->set("values", metkit::codes::Span{std::vector{1.0, 2.0, 3.0, 4.0, 5.0, 6.0}}); - sample->set("scaleFactorOfFirstFixedSurface", 0); - sample->set("scaledValueOfFirstFixedSurface", 0); - sample->set("gridDefinitionTemplateNumber", 50); - sample->set("J", 1); - sample->set("K", 1); - sample->set("M", 1); - sample->set("spectralType", 1); - sample->set("spectralMode", 1); - sample->set( "numberOfOctectsForNumberOfPoints", 0); - sample->set( "interpretationOfNumberOfPoints", 0); - sample->set("dataRepresentationTemplateNumber", 51); - - return sample; - } - case dm::Repres::GG: { - // sample->set("gridType", std::string("reduced_gg")); - return sample; - } - default: { - return sample; - } - } -} - -} // namespace - - -EncoderCache::CacheEntry& EncoderCache::makeOrGetEntry(const dm::FullMarsRecord& marsKeys, const MultIOMDict& mars, - const MultIOMDict& misc, const MultIOMDict& geo) { - // Select caching keys and prehash - PrehashedMarsKeys cacheKeySet = dm::readRecord(marsKeys); - - // Search and return if entry already exists - if (auto search = cache_.find(cacheKeySet); search != cache_.end()) { - return search->second; - } - - // Otherwise prepare a new entry - - // Searching for rule... - - SectionsConf sections = rules::buildEncoderConf(marsKeys); - auto exportedConf = dm::dumpRecord(sections); - - MultIOMRawEncoder encoder{exportedConf}; - - auto sample = defaultSample(); - - // Prepare sample - sample = prepareSample(std::move(sample), marsKeys); - sample = encoder.allocateAndPreset(std::move(sample), mars, misc, geo); - - - // Move encoder and prepared sample to cache - return cache_ - .emplace(std::move(cacheKeySet), CacheEntry{std::move(sections), std::move(encoder), std::move(sample)}) - .first->second; -} - - -std::unique_ptr EncoderCache::getHandle(const dm::FullMarsRecord& marsKeys, - const MultIOMDict& mars, const MultIOMDict& misc, - const MultIOMDict& geo) { - CacheEntry& entry = makeOrGetEntry(marsKeys, mars, misc, geo); - return entry.encoder.runtime(entry.preparedSample->clone(), mars, misc, geo); -} - -std::unique_ptr EncoderCache::getHandle(const dm::FullMarsRecord& marsKeys, - const dm::MiscRecord& miscKeys, - const dm::Geometry& geoKeys) { - try { - MultIOMDict mars{MultIOMDictKind::MARS}; - MultIOMDict misc{MultIOMDictKind::Parametrization}; - - dm::dumpRecord(marsKeys, mars); - dm::dumpRecord(miscKeys, misc); - - // Setup MultIOM dict - MultIOMDict geom{([&]() { - switch (marsKeys.repres.get()) { - case dm::Repres::GG: - return MultIOMDictKind::ReducedGG; - case dm::Repres::HEALPix: - return MultIOMDictKind::HEALPix; - case dm::Repres::LL: - return MultIOMDictKind::RegularLL; - case dm::Repres::SH: - return MultIOMDictKind::SH; - } - throw Mars2GribException("unkown repres", Here()); - })()}; - - std::visit([&](auto& specificGeoKeys) { dm::dumpRecord(specificGeoKeys, geom); }, geoKeys); - - // return getHandle(marsKeys, mars, misc, geom); - auto ret = getHandle(marsKeys, mars, misc, geom); - - // TODO pgeier fix that needs to be expressed in GeoGG once MULTIOM is gone - if (marsKeys.repres.get() == dm::Repres::GG) { - ret->set("shapeOfTheEarth", 6); - } - // TODO pgeier this is a fix that needs to be moved to the section setters - if (miscKeys.bitmapPresent.isSet()) { - ret->set("bitmapPresent", miscKeys.bitmapPresent.get()); - } - if (miscKeys.missingValue.isSet()) { - ret->set("missingValue", miscKeys.missingValue.get()); - } - return ret; - } - catch (...) { - std::ostringstream oss; - util::PrintStream ps(oss); - ps.repres(util::PrintRepres::Compact); - ps << "Failure in EncoderCache::getHandle" << std::endl; - { - util::IndentGuard gout(ps); - - ps << "Mars: " << marsKeys << std::endl; - ps << "Misc: " << miscKeys << std::endl; - ps << "Geo: " << geoKeys << std::endl; - } - - std::throw_with_nested(mars2grib::Mars2GribException(oss.str(), Here())); - } -} - -std::unique_ptr EncoderCache::getHandle(const dm::FullMarsRecord& marsKeys, - const dm::MiscRecord& miscKeys) { - auto geo = makeUnscopedGeometry(marsKeys); - return getHandle(marsKeys, miscKeys, geo); -} - - -} // namespace multio::mars2grib diff --git a/src/multio/mars2grib/EncoderCache.h b/src/multio/mars2grib/EncoderCache.h deleted file mode 100644 index a98894dee..000000000 --- a/src/multio/mars2grib/EncoderCache.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#pragma once - - -#include "multio/datamod/ContainerInterop.h" -#include "multio/datamod/MarsMiscGeo.h" -#include "multio/mars2grib/EncoderConf.h" -#include "multio/mars2grib/MarsCachedKeys.h" -#include "multio/mars2grib/multiom/MultIOMDict.h" -#include "multio/mars2grib/multiom/MultIOMRawEncoder.h" -#include "multio/util/PrehashedKey.h" - -#include "metkit/codes/api/CodesAPI.h" - - -namespace multio::mars2grib { - -namespace dm = multio::datamod; - -using PrehashedMarsKeys = util::PrehashedKey; - -class EncoderCache { -public: - EncoderCache() = default; - EncoderCache(const EncoderCache&) = default; - EncoderCache(EncoderCache&&) = default; - EncoderCache& operator=(const EncoderCache&) = default; - EncoderCache& operator=(EncoderCache&&) = default; - - // Try to infer geometry and then prepare a grib handle - std::unique_ptr getHandle(const dm::FullMarsRecord& marsKeys, const dm::MiscRecord& miscKeys); - // Perpare a grib handle - std::unique_ptr getHandle(const dm::FullMarsRecord& marsKeys, const dm::MiscRecord& miscKeys, - const dm::Geometry& geoKeys); - -protected: - // Prepare a grib handle with already mapped MultIOM dicts - std::unique_ptr getHandle(const dm::FullMarsRecord& marsKeys, const MultIOMDict& marsDict, - const MultIOMDict& parDict, const MultIOMDict& geoDict); - -private: - struct CacheEntry { - SectionsConf sections; - MultIOMRawEncoder encoder; - std::unique_ptr preparedSample; - }; - - CacheEntry& makeOrGetEntry(const dm::FullMarsRecord& marsKeys, const MultIOMDict& marsDict, - const MultIOMDict& parDict, const MultIOMDict& geoDict); - - std::unordered_map cache_{}; -}; - - -//---------------------------------------------------------------------------------------------------------------------- - - -} // namespace multio::mars2grib diff --git a/src/multio/mars2grib/EncoderConf.h b/src/multio/mars2grib/EncoderConf.h deleted file mode 100644 index 6042167cc..000000000 --- a/src/multio/mars2grib/EncoderConf.h +++ /dev/null @@ -1,504 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#pragma once - -#include "multio/datamod/GribKeys.h" -#include "multio/datamod/core/Compare.h" -#include "multio/datamod/core/EntryDef.h" -#include "multio/datamod/core/NestedRecord.h" -#include "multio/datamod/core/Record.h" -#include "multio/mars2grib/Mars2GribException.h" -#include "multio/mars2grib/generated/InferPDT.h" -#include "multio/mars2grib/sections/Level.h" -#include "multio/mars2grib/sections/SectionTypes.h" - -namespace multio { - -/// Detailed descriptions of the encoder configuration. -/// First attempt is to replicate existing structure and to migrate the rule -/// search mechanism while keeping the fortran encoders. -/// Often the structures of the configs have a subconfiguration where to only -/// available key-value is "type": "default" These have to be refactored to -/// something less but more expressive -/// -/// TODO: After the migration this should become a proper struct with optionals -/// Encoding/Parsing will not be needed then. -/// It was a quick way to represent the current encoder configuration and -/// to set keys on it - -namespace dm = multio::datamod; - -namespace mars2grib { - -//---------------------------------------------------------------------------------------------------------------------- -// Section0 -//---------------------------------------------------------------------------------------------------------------------- - -struct IndicatorSection { - dm::Entry templateNumber; - - static constexpr std::string_view record_name_ = "indicator-section"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("template-number", &IndicatorSection::templateNumber).withDefault(0)); -}; - -//---------------------------------------------------------------------------------------------------------------------- -// Section1 -//---------------------------------------------------------------------------------------------------------------------- - -struct OriginConfigurator { - dm::Entry type; - dm::Entry subCentre; - - static constexpr std::string_view record_name_ = "origin-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &OriginConfigurator::type).withDefault("default"), - dm::entryDef("sub-centre", &OriginConfigurator::subCentre).withDefault(0)); -}; - -struct DataTypeConfigurator { - dm::Entry type; - - static constexpr std::string_view record_name_ = "data-type-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &DataTypeConfigurator::type).withDefault("default")); -}; - -struct ReferenceTimeConfigurator { - dm::Entry type; - - static constexpr std::string_view record_name_ = "reference-time-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &ReferenceTimeConfigurator::type).withDefault("default")); -}; - -struct TablesConfigurator { - dm::Entry type; - dm::Entry tablesVersion; - dm::Entry localTablesVersion; - - static constexpr std::string_view record_name_ = "tables-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &TablesConfigurator::type).withDefault("default"), - dm::entryDef("tables-version", &TablesConfigurator::tablesVersion).tagOptional(), - dm::entryDef("local-tables-version", &TablesConfigurator::localTablesVersion).withDefault(0)); -}; - -// Whole identification section -struct IdentificationSection { - dm::Entry templateNumber; - dm::Entry tables; - dm::Entry origin; - dm::Entry dataType; - dm::Entry referenceTime; - - static constexpr std::string_view record_name_ = "identification-section"; - static constexpr auto record_entries_ = std::make_tuple( - dm::entryDef("template-number", &IdentificationSection::templateNumber).withDefault(0), - dm::nestedEntryDef(&IdentificationSection::origin), dm::nestedEntryDef(&IdentificationSection::dataType), - dm::nestedEntryDef(&IdentificationSection::referenceTime), dm::nestedEntryDef(&IdentificationSection::tables)); -}; - -//---------------------------------------------------------------------------------------------------------------------- -// Section2 Local use -//---------------------------------------------------------------------------------------------------------------------- - -struct LocalUseSection { - dm::Entry templateNumber; - - static constexpr std::string_view record_name_ = "local-use-section"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("template-number", &LocalUseSection::templateNumber).withDefault(0)); -}; - -//---------------------------------------------------------------------------------------------------------------------- -// Section3 Grid -//---------------------------------------------------------------------------------------------------------------------- - -struct GridSection { - dm::Entry templateNumber; - - static constexpr std::string_view record_name_ = "grid-definition-section"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("template-number", &GridSection::templateNumber).withDefault(0)); -}; - -//---------------------------------------------------------------------------------------------------------------------- -// Section4 Product definition -//---------------------------------------------------------------------------------------------------------------------- - -struct ParamConfigurator { - dm::Entry type; - dm::Entry datasetForLocal; - - static constexpr std::string_view record_name_ = "param-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &ParamConfigurator::type).withDefault("paramId"), - dm::entryDef("dataset-for-local", &ParamConfigurator::datasetForLocal).tagOptional()); -}; - -struct PointInTimeConfigurator { - dm::Entry type; - - static constexpr std::string_view record_name_ = "point-in-time-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &PointInTimeConfigurator::type).withDefault("default")); -}; - -struct TimeRangeConfigurator { - dm::Entry type; - dm::Entry typeOfStatisticalProcessing; - dm::Entry overallLengthOfTimeRange; - - static constexpr std::string_view record_name_ = "time-statistics-configurator"; - static constexpr auto record_entries_ = std::make_tuple( - dm::entryDef("type", &TimeRangeConfigurator::type), - dm::entryDef("type-of-statistical-processing", &TimeRangeConfigurator::typeOfStatisticalProcessing), - dm::entryDef("overall-length-of-timerange", &TimeRangeConfigurator::overallLengthOfTimeRange).tagOptional()); -}; - -struct ProcessConfigurator { - dm::Entry type; - - static constexpr std::string_view record_name_ = "ensemble-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &ProcessConfigurator::type).withDefault("default")); -}; - -struct ModelConfigurator { - dm::Entry type; - - static constexpr std::string_view record_name_ = "model-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &ModelConfigurator::type).withDefault("default")); -}; - -struct RandomPatternsConfigurator { - dm::Entry type; - - static constexpr std::string_view record_name_ = "random-patterns-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &RandomPatternsConfigurator::type).withDefault("default")); -}; - -struct ChemConfigurator { - dm::Entry type; - - static constexpr std::string_view record_name_ = "chemistry-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &ChemConfigurator::type).withDefault("chemical")); -}; - -struct DirFreqConfigurator { - dm::Entry type; - - static constexpr std::string_view record_name_ = "directions-frequencies-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &DirFreqConfigurator::type).withDefault("default") - - ); -}; - -struct SatelliteConfigurator { - dm::Entry type; - - static constexpr std::string_view record_name_ = "satellite-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &SatelliteConfigurator::type).withDefault("default") - - ); -}; - -struct PeriodConfigurator { - dm::Entry type; - - static constexpr std::string_view record_name_ = "period-configurator"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("type", &PeriodConfigurator::type).withDefault("default")); -}; - -using multio::mars2grib::sections::LevelConfigurator; - -struct ProductSection { - dm::Entry templateNumber; - // Optional as it is used to generate templateNumber - dm::Entry pdtCat; - - // Param and Model are the only required configurators - // All others are optional/product dependent - dm::Entry param; - dm::Entry model; - - // All optional in the sum of all products - dm::Entry pointInTime; - dm::Entry timeRange; - dm::Entry level; - dm::Entry process; - dm::Entry randomPatterns; - dm::Entry chemical; - dm::Entry dirFreq; - dm::Entry periodRange; - dm::Entry satellite; - - static constexpr std::string_view record_name_ = "product-definition-section"; - static constexpr auto record_entries_ = std::make_tuple( - dm::entryDef("template-number", &ProductSection::templateNumber), - - dm::nestedOptEntryDef(&ProductSection::pdtCat), - - dm::nestedEntryDef(&ProductSection::param), dm::nestedEntryDef(&ProductSection::model), - - dm::nestedOptEntryDef(&ProductSection::pointInTime), dm::nestedOptEntryDef(&ProductSection::timeRange), - dm::nestedOptEntryDef(&ProductSection::level), dm::nestedOptEntryDef(&ProductSection::process), - dm::nestedOptEntryDef(&ProductSection::level), dm::nestedOptEntryDef(&ProductSection::randomPatterns), - dm::nestedOptEntryDef(&ProductSection::chemical), dm::nestedOptEntryDef(&ProductSection::dirFreq), - dm::nestedOptEntryDef(&ProductSection::periodRange), dm::nestedOptEntryDef(&ProductSection::satellite)); - - static void applyDefaults(mars2grib::ProductSection& product) { - using namespace mars2grib; - using namespace mars2grib::rules; - - // Checking PDT - { - if (product.pdtCat.isSet()) { - auto pdtNum = InferPdt<>{}.inferProductDefinitionTemplateNumber(product.pdtCat.get()); - - if (product.templateNumber.isSet() && product.templateNumber.get() != pdtNum) { - std::ostringstream oss; - oss << "ProductSection configuration has a template number and PDT " - "categories specified, but the " - "generated PDT " - << pdtNum << " is different from the passed " << product.templateNumber.get(); - throw Mars2GribException(oss.str(), Here()); - } - product.templateNumber.set(pdtNum); - } - } - } - - static void validate(mars2grib::ProductSection& product) { - using namespace mars2grib; - using namespace mars2grib::rules; - - // Checking PDT - { - if (!product.templateNumber.isSet() && !product.pdtCat.isSet()) { - std::ostringstream oss; - oss << "ProductSection configuration has no template number and no PDT " - "categories specified."; - throw Mars2GribException(oss.str(), Here()); - } - } - - // Checking Time - { - if (product.timeRange.isSet() && product.pointInTime.isSet()) { - std::ostringstream oss; - oss << "ProductSection configuration has a PointInTime and a " - "TimeStatistics section." - << std::endl; - throw Mars2GribException(oss.str(), Here()); - } - if (!product.timeRange.isSet() && !product.pointInTime.isSet()) { - std::ostringstream oss; - oss << "ProductSection configuration has no time definition." << std::endl; - throw Mars2GribException(oss.str(), Here()); - } - } - } -}; - - -//---------------------------------------------------------------------------------------------------------------------- -// Section5 Data representation -//---------------------------------------------------------------------------------------------------------------------- - -struct DataRepresSection { - dm::Entry templateNumber; - - static constexpr std::string_view record_name_ = "data-representation-section"; - static constexpr auto record_entries_ - = std::make_tuple(dm::entryDef("template-number", &DataRepresSection::templateNumber).withDefault(0) - - ); -}; - -//---------------------------------------------------------------------------------------------------------------------- -// All sections -//---------------------------------------------------------------------------------------------------------------------- - -struct SectionsConf { - dm::Entry type; - - dm::Entry indicator; - dm::Entry identification; - dm::Entry localUse; - dm::Entry grid; - dm::Entry product; - dm::Entry dataRepres; - - static constexpr std::string_view record_name_ = "encoder"; - static constexpr auto record_entries_ = std::make_tuple( - dm::entryDef("type", &SectionsConf::type).withDefault("grib2"), - - dm::nestedEntryDef(&SectionsConf::indicator), dm::nestedEntryDef(&SectionsConf::identification), - dm::nestedEntryDef(&SectionsConf::localUse), dm::nestedEntryDef(&SectionsConf::grid), - dm::nestedEntryDef(&SectionsConf::product), dm::nestedEntryDef(&SectionsConf::dataRepres) - - ); -}; -} // namespace mars2grib - -// //--------------------------------------------------------------------------------------------------------------------- - -// } // namespace mars2grib - -namespace util { - -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; -template <> -struct Print : datamod::PrintRecord {}; - -} // namespace util - - -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper { -}; -template <> -struct datamod::DumpType : RecordMapper { -}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; -template <> -struct datamod::ParseType : RecordMapper {}; -template <> -struct datamod::DumpType : RecordMapper {}; - -} // namespace multio - diff --git a/src/multio/mars2grib/Mars2GribException.cc b/src/multio/mars2grib/Mars2GribException.cc deleted file mode 100644 index 9825ecfba..000000000 --- a/src/multio/mars2grib/Mars2GribException.cc +++ /dev/null @@ -1,26 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation nor - * does it submit to any jurisdiction. - */ - -#include "multio/mars2grib/Mars2GribException.h" - -namespace multio::mars2grib { - -std::string encodingExceptionReason(const std::string& r) { - std::string s("Mars2Grib exception: "); - s.append(r); - return s; -} - - -Mars2GribException::Mars2GribException(const std::string& r, const eckit::CodeLocation& l) : - eckit::Exception(encodingExceptionReason(r), l) {} - - -} // namespace multio::action diff --git a/src/multio/mars2grib/Mars2GribException.h b/src/multio/mars2grib/Mars2GribException.h deleted file mode 100644 index 0ebc9c267..000000000 --- a/src/multio/mars2grib/Mars2GribException.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#pragma once - - -#include "eckit/exception/Exceptions.h" - - -namespace multio::mars2grib { - -//--------------------------------------------------------------------------------------------------------------------- - -class Mars2GribException : public eckit::Exception { -public: - Mars2GribException(const std::string& reason, const eckit::CodeLocation& location = eckit::CodeLocation()); -}; - -//--------------------------------------------------------------------------------------------------------------------- - - -} // namespace multio::action diff --git a/src/multio/mars2grib/Rules.cc b/src/multio/mars2grib/Rules.cc deleted file mode 100644 index 6e78d487b..000000000 --- a/src/multio/mars2grib/Rules.cc +++ /dev/null @@ -1,876 +0,0 @@ -#include "multio/mars2grib/Rules.h" -#include "multio/datamod/GribKeys.h" -#include "multio/datamod/MarsMiscGeo.h" -#include "multio/datamod/core/EntryDef.h" -#include "multio/datamod/core/Record.h" -#include "multio/datamod/types/TypeOfLevel.h" -#include "multio/datamod/types/TypeOfStatisticalProcessing.h" -#include "multio/mars2grib/EncoderConf.h" -#include "multio/mars2grib/Mars2GribException.h" -#include "multio/mars2grib/generated/InferPDT.h" -#include "multio/mars2grib/rules/Matcher.h" -#include "multio/mars2grib/rules/ParamMatcher.h" -#include "multio/mars2grib/rules/Rule.h" -#include "multio/mars2grib/rules/Setter.h" -#include "multio/mars2grib/sections/SectionTypes.h" - -#include "multio/util/Print.h" - - -namespace multio::mars2grib::rules { - -using namespace matcher; -using namespace sections; - -using TOL = dm::TypeOfLevel; -using TOSP = dm::TypeOfStatisticalProcessing; - -namespace dm = multio::datamod; - -//----------------------------------------------------------------------------- -// Matchers -//----------------------------------------------------------------------------- - -auto matchChemical() { - return all(Has{&dm::FullMarsRecord::chem}, Missing{&dm::FullMarsRecord::wavelength}, lessThan(&dm::FullMarsRecord::chem, 900)); -} - -auto matchAerosol() { - return all(Has{&dm::FullMarsRecord::chem}, Missing{&dm::FullMarsRecord::wavelength}, greaterEqual(&dm::FullMarsRecord::chem, 900)); -} - -auto matchOptical() { - return all(Missing{&dm::FullMarsRecord::chem}, Has{&dm::FullMarsRecord::wavelength}); -} -auto matchChemicalOptical() { - return all(Has{&dm::FullMarsRecord::chem}, Has{&dm::FullMarsRecord::wavelength}); -} - -auto matchLevType(dm::LevType lt) { - return OneOf{&dm::FullMarsRecord::levtype, {lt}}; -} - -auto matchSatellite() { - // Satellite data can be identified by having the keyword CHANNEL: - // https://apps.ecmwf.int/mars-catalogue/?stream=oper&levtype=sfc&expver=1&month=nov&year=2025&date=2025-11-03&type=ssd&class=od - // - // Other satellite related keywords like instrument and ident is not always given because channel is actually - // holding a channel like index as combination of instrument, indent and the true channel: - // https://apps.ecmwf.int/mars-catalogue/?stream=elda&levtype=sfc&expver=1&month=nov&year=2025&type=em&class=od - return all(Missing{&dm::FullMarsRecord::levtype}, Has{&dm::FullMarsRecord::channel}); -} - -//----------------------------------------------------------------------------- -// Setters -//----------------------------------------------------------------------------- - -// Category setters -auto pointInTime() { - return Setter([](SectionsConf& c) { - c.product.ensureInit().modify().pdtCat.ensureInit().modify().timeExtent.set(TimeExtent::PointInTime); - c.product.ensureInit().modify().pointInTime.ensureInit(); - }); -} -auto timeRange(TimeRangeType type, TOSP typeOfStatisticalProcessing) { - return Setter([=](SectionsConf& c) { - c.product.ensureInit().modify().pdtCat.ensureInit().modify().timeExtent.set(TimeExtent::TimeRange); - c.product.ensureInit().modify().timeRange.ensureInit().modify().type.set(type); - c.product.ensureInit().modify().timeRange.ensureInit().modify().typeOfStatisticalProcessing.set( - typeOfStatisticalProcessing); - }); -} -auto overallLengthOfTimeRange(const std::string& l) { - return Setter([=](SectionsConf& c) { - c.product.ensureInit().modify().timeRange.ensureInit().modify().overallLengthOfTimeRange.set(l); - }); -} - -auto ensemble() { - return Setter([](SectionsConf& c) { - c.product.ensureInit().modify().pdtCat.ensureInit().modify().processSubType.set(ProcessSubType::Ensemble); - c.product.ensureInit().modify().process.ensureInit(); - }); -} -auto largeEnsemble() { - return Setter([](SectionsConf& c) { - c.product.ensureInit().modify().pdtCat.ensureInit().modify().processSubType.set(ProcessSubType::LargeEnsemble); - c.product.ensureInit().modify().process.ensureInit(); - }); -} -auto reforecast() { - return Setter([](SectionsConf& c) { - c.product.ensureInit().modify().pdtCat.ensureInit().modify().processType.set(ProcessType::Reforecast); - c.product.ensureInit().modify().process.ensureInit(); - }); -} -auto derivedForecast() { - return Setter([](SectionsConf& c) { - c.product.ensureInit().modify().pdtCat.ensureInit().modify().processType.set(ProcessType::DerivedForecast); - c.product.ensureInit().modify().process.ensureInit(); - c.product.ensureInit().modify().process.modify().type.set("derived"); - }); -} - -auto chemical() { - return Setter([](SectionsConf& c) { - c.product.ensureInit().modify().chemical.ensureInit(); - c.product.ensureInit().modify().pdtCat.ensureInit().modify().productCategory.set(ProductCategory::Chemical); - }); -} - -auto periodRange() { - return Setter([](SectionsConf& c) { - c.product.ensureInit().modify().periodRange.ensureInit(); - c.product.ensureInit().modify().pdtCat.ensureInit().modify().productCategory.set(ProductCategory::Wave); - c.product.ensureInit().modify().pdtCat.ensureInit().modify().productSubCategory.set( - ProductSubCategory::PeriodRange); - }); -} - -auto dirFreq() { - return Setter([](SectionsConf& c) { - c.product.ensureInit().modify().dirFreq.ensureInit(); - c.product.ensureInit().modify().pdtCat.ensureInit().modify().productCategory.set(ProductCategory::Wave); - c.product.ensureInit().modify().pdtCat.ensureInit().modify().productSubCategory.set( - ProductSubCategory::SpectraList); - }); -} - -auto satellite() { - return Setter([](SectionsConf& c) { - c.product.ensureInit().modify().satellite.ensureInit(); - c.product.ensureInit().modify().pdtCat.ensureInit().modify().productCategory.set(ProductCategory::Satellite); - }); -} - -auto randomPattern() { - return Setter([](SectionsConf& c) { - c.product.ensureInit().modify().randomPatterns.ensureInit(); - c.product.ensureInit().modify().pdtCat.ensureInit().modify().spatialExtent.set(SpatialExtent::RandomPatterns); - }); -} - - -// Other setters - -auto typeOfLevel(TOL type) { - return Setter([=](SectionsConf& c) { c.product.ensureInit().modify().level.ensureInit().modify().type.set(type); }); -} -auto fixedLevel(dm::EntryValueType_t lvl) { - return Setter( - [=](SectionsConf& c) { c.product.ensureInit().modify().level.ensureInit().modify().fixedLevel.set(lvl); }); -} -auto localUse(std::int64_t num) { - return Setter([=](SectionsConf& c) { c.localUse.ensureInit().modify().templateNumber.set(num); }); -} - -auto dataRepres(std::int64_t num) { - return Setter([=](SectionsConf& c) { c.dataRepres.ensureInit().modify().templateNumber.set(num); }); -} - - -auto tablesConfig(const std::string& type) { - return Setter( - [=](SectionsConf& c) { c.identification.ensureInit().modify().tables.ensureInit().modify().type.set(type); }); -} - -auto tablesVersion(std::int64_t version) { - return Setter([=](SectionsConf& c) { - c.identification.ensureInit().modify().tables.ensureInit().modify().tablesVersion.set(version); - }); -} - -auto localTablesVersion(std::int64_t version) { - return Setter([=](SectionsConf& c) { - c.identification.ensureInit().modify().tables.ensureInit().modify().localTablesVersion.set(version); - }); -} - - -//----------------------------------------------------------------------------- -// Composed rules -//----------------------------------------------------------------------------- - -auto makeGridRule(dm::Repres repres, std::int64_t num) { - return rule(OneOf{&dm::FullMarsRecord::repres, {repres}}, - Setter([=](SectionsConf& c) { c.grid.ensureInit().modify().templateNumber.set(num); })); -} - -auto gridRules() { - return exclusiveRuleList("gridRules", // - makeGridRule(dm::Repres::LL, 0), makeGridRule(dm::Repres::GG, 40), - makeGridRule(dm::Repres::SH, 50)); -} - -auto localSectionRules() { - return exclusiveRuleList( // - "localSectionRules", // - rule(all(Missing{&dm::FullMarsRecord::anoffset}, NoneOf{&dm::FullMarsRecord::klass, {"d1"}}, - Missing{&dm::FullMarsRecord::method}, Missing{&dm::FullMarsRecord::channel}), - localUse(1)), - rule(all(Missing{&dm::FullMarsRecord::anoffset}, NoneOf{&dm::FullMarsRecord::klass, {"d1"}}, - Has{&dm::FullMarsRecord::method}), - localUse(15)), - // DerivedEnsembleForecasts (type=em/es can be combined with satellite (have channel) - there is no valid PDT - // for this - hence the channel information is stored in the local 14 template. Also notice that for these - // templates channel acts as an index from which instrument can be inferred (this is not documented and - // implemented anywhere) - rule(all(Missing{&dm::FullMarsRecord::anoffset}, NoneOf{&dm::FullMarsRecord::klass, {"d1"}}, - Missing{&dm::FullMarsRecord::method}, Has{&dm::FullMarsRecord::channel}, - OneOf{&dm::FullMarsRecord::type, {"em", "es"}}), - localUse(14)), - rule(all(Has{&dm::FullMarsRecord::anoffset}, NoneOf{&dm::FullMarsRecord::klass, {"d1"}}), localUse(36)), - rule(all(Missing{&dm::FullMarsRecord::anoffset}, OneOf{&dm::FullMarsRecord::klass, {"d1"}}), localUse(1001)), - rule(all(Has{&dm::FullMarsRecord::anoffset}, OneOf{&dm::FullMarsRecord::klass, {"d1"}}), localUse(1036))); -} - -auto processTypesRules() { - return exclusiveRuleList( - "processTypesRules", - // Match any levtype but AL (or no levtype) - rule(all(NoneOf{&dm::FullMarsRecord::levtype, {dm::LevType::AL}}, Missing{&dm::FullMarsRecord::number}, Missing{&dm::FullMarsRecord::hdate}, NoneOf{&dm::FullMarsRecord::type, {"em", "es"}})), - rule(all(NoneOf{&dm::FullMarsRecord::levtype, {dm::LevType::AL}}, Has{&dm::FullMarsRecord::number}, Missing{&dm::FullMarsRecord::hdate}), ensemble()), - rule(all(NoneOf{&dm::FullMarsRecord::levtype, {dm::LevType::AL}}, Has{&dm::FullMarsRecord::number}, Has{&dm::FullMarsRecord::hdate}), reforecast(), ensemble()), - rule(all(NoneOf{&dm::FullMarsRecord::levtype, {dm::LevType::AL}}, Missing{&dm::FullMarsRecord::number}, Missing{&dm::FullMarsRecord::hdate}, OneOf{&dm::FullMarsRecord::type, {"em", "es"}}), - derivedForecast(), ensemble()), - // Levtype AL specific - detection whether a largeEnsemble is used should actually depend on - // numberOfForecastsInEnsemble > 254 - rule(all(matchLevType(dm::LevType::AL), Has{&dm::FullMarsRecord::number}, Missing{&dm::FullMarsRecord::hdate}), largeEnsemble()), - rule(all(matchLevType(dm::LevType::AL), Has{&dm::FullMarsRecord::number}, Has{&dm::FullMarsRecord::hdate}), reforecast(), largeEnsemble())); -} - -auto packingRules() { - return exclusiveRuleList( // - "packingRules", - rule(OneOf{&dm::FullMarsRecord::packing, {"simple"}}, dataRepres(0)), // - rule(OneOf{&dm::FullMarsRecord::packing, {"ccsds"}}, dataRepres(42)), // - rule(OneOf{&dm::FullMarsRecord::packing, {"complex"}}, dataRepres(51))); -} - - -//----------------------------------------------------------------------------- -// Params -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -// Satellite -//----------------------------------------------------------------------------- - -// Single satellite rule - defined here to be checked twice - with levtype sfc -// and without any levtype but ident, instrument and channel -auto singleSatelliteRule() { - return rule(matchParams(paramRange(260510, 260512)), // - pointInTime(), // - satellite()); -} - -// derivedEnsembleProduct satellite rules --- for these cases the satellite information is stored in -// a local template. This is explicitly handled in the `localSectionRules()`. -auto derivedEnsembleForecastSatelliteRule() { - // TODO(pgeier) Reintroduce strict checks an missing timespan etc.. - // 194 is coming from fdb prod - the grib1-to-grib2 tool still emits timespan although 192 is not - // statistical - // return rule(all(Missing{dm::TIMESPAN}, Missing{dm::STATTYPE}, matchParams(194)), // - // pointInTime(), typeOfLevel(TOL::Surface)); // - return rule(matchParams(194), // - pointInTime(), typeOfLevel(TOL::Surface)); // -} - -auto satelliteRules() { - return exclusiveRuleList( - "satelliteRules", - chainedRuleList(rule(all(Has{&dm::FullMarsRecord::channel}, NoneOf{&dm::FullMarsRecord::type, {"em", "es"}})), - singleSatelliteRule()), // - chainedRuleList(rule(all(Has{&dm::FullMarsRecord::channel}, OneOf{&dm::FullMarsRecord::type, {"em", "es"}})), - derivedEnsembleForecastSatelliteRule()), // - chainedRuleList(rule(Missing{&dm::FullMarsRecord::channel}))); -} - -//----------------------------------------------------------------------------- -// SFC -//----------------------------------------------------------------------------- - -auto paramSFCRules() { - return exclusiveRuleList( - "paramSFCRules", // - rule(matchParams(228023), // - pointInTime(), typeOfLevel(TOL::CloudBase)), // - rule(matchParams( // - 59, 78, 79, 136, 137, 164, 206, paramRange(162059, 162063), 162071, 162072, 162093, 228001, 228044, - 228050, 228052, 228088, 228089, 228090, 228164, 260132), // - pointInTime(), typeOfLevel(TOL::EntireAtmosphere)), // - rule(matchParams(228007, 228011), // - pointInTime(), typeOfLevel(TOL::EntireLake)), // - rule(matchParams(121), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Maximum), - overallLengthOfTimeRange("6h"), // - typeOfLevel(TOL::HeightAboveGroundAt2m), fixedLevel(2)), // - rule(matchParams(122), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Minimum), - overallLengthOfTimeRange("6h"), // - typeOfLevel(TOL::HeightAboveGroundAt2m), fixedLevel(2)), // - rule(matchParams(201, 237167, 237168), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::HeightAboveGroundAt2m), fixedLevel(2)), // - rule(matchParams(202, 238167, 238168), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::HeightAboveGroundAt2m), fixedLevel(2)), // - rule(matchParams(228004, 235168), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::HeightAboveGroundAt2m), fixedLevel(2)), // - rule(matchParams(239167, 239168), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), // - typeOfLevel(TOL::HeightAboveGroundAt2m), fixedLevel(2)), // - rule(matchParams(123), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Maximum), // - overallLengthOfTimeRange("6h"), // - typeOfLevel(TOL::HeightAboveGroundAt10m), fixedLevel(10)), // - rule(matchParams(228028), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Maximum), - overallLengthOfTimeRange("3h"), // - typeOfLevel(TOL::HeightAboveGroundAt10m), fixedLevel(10)), // - rule(matchParams(49, 237165, 237166, 237207, 237318), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::HeightAboveGroundAt10m), fixedLevel(10)), // - rule(matchParams(141233, 141245), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::HeightAboveSeaAt10m), fixedLevel(10)), // - rule(matchParams(143233, 143245), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::HeightAboveSeaAt10m), fixedLevel(10)), // - rule(matchParams(144233, 144245), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::HeightAboveSeaAt10m), fixedLevel(10)), // - rule(matchParams(145233, 145245), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), // - typeOfLevel(TOL::HeightAboveSeaAt10m), fixedLevel(10)), // - rule(matchParams(235087, 235088, 235136, 235137, 235087, 235088, 235137, 235288, 235287, 235290, 235326, - 235383), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::EntireAtmosphere)), // - rule(matchParams(237087, 237088, 237326, 237288, 237290, 237137, 237287), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::EntireAtmosphere)), // - rule(matchParams(238087, 238088, 238326, 238288, 238290, 238137, 238287), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::EntireAtmosphere)), // - rule(matchParams(239087, 239088, 239326, 239288, 239290, 239137, 239287), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), // - typeOfLevel(TOL::EntireAtmosphere)), // - rule(matchParams(228005, 235165, 235166), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::HeightAboveGroundAt10m), fixedLevel(10)), // - rule(matchParams(238165, 238166, 238207), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::HeightAboveGroundAt10m), fixedLevel(10)), // - rule(matchParams(239165, 239166, 239207), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), // - typeOfLevel(TOL::HeightAboveGroundAt10m), fixedLevel(10)), // - rule(matchParams(235151), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::MeanSea)), // - rule(matchParams(237151), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::MeanSea)), // - rule(matchParams(238151), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::MeanSea)), // - rule(matchParams(239151), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), // - typeOfLevel(TOL::MeanSea)), // - rule(matchParams(235039, 235040, 235049, 235050, 235053), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::NominalTop)), // - rule(matchParams(paramRange(141101, 141105), 141208, 141209, 141215, 141216, 141220, 141229, 141232, // - 235020, 235021, paramRange(235029, 235031), paramRange(235033, 235038), // - paramRange(235041, 235043), 235048, 235051, 235052, 235055, 235058, // - paramRange(235078, 235080), 235083, 235084, 235093, 235134, 235159, 235189, 235263, // - 235283, 235339), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(235108), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), - typeOfLevel(TOL::LowCloudLayer)), - rule(matchParams(237108), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), - typeOfLevel(TOL::LowCloudLayer)), - rule(matchParams(238108), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), - typeOfLevel(TOL::LowCloudLayer)), - rule(matchParams(239108), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), - typeOfLevel(TOL::LowCloudLayer)), - rule(matchParams(235090, 235091), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), - typeOfLevel(TOL::MixingLayer)), - rule(matchParams(237090, 237091), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), - typeOfLevel(TOL::MixingLayer)), - rule(matchParams(238090, 238091), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), - typeOfLevel(TOL::MixingLayer)), - rule(matchParams(239090, 239091), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), - typeOfLevel(TOL::MixingLayer)), - rule(matchParams(235322), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), - typeOfLevel(TOL::Tropopause)), - rule(matchParams(237322), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), - typeOfLevel(TOL::Tropopause)), - rule(matchParams(238322), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), - typeOfLevel(TOL::Tropopause)), - rule(matchParams(239322), timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), - typeOfLevel(TOL::Tropopause)), - rule(matchParams(235077, 235094), // 235077 also exists on SOL ! - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::SoilLayer)), // - rule(matchParams(237077, 237094), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::SoilLayer)), // - rule(matchParams(238077, 238094), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::SoilLayer)), // - rule(matchParams(239077, 239094), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), // - typeOfLevel(TOL::SoilLayer)), // - rule(matchParams(235309), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::IceLayerOnWater)), // - rule(matchParams(237309), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::IceLayerOnWater)), // - rule(matchParams(238309), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::IceLayerOnWater)), // - rule(matchParams(239309), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), // - typeOfLevel(TOL::IceLayerOnWater)), // - rule(matchParams(263024), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::SeaIceLayer)), // - rule(matchParams(265024), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::SeaIceLayer)), // - rule(matchParams(266024), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::SeaIceLayer)), // - rule(matchParams(267024), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), // - typeOfLevel(TOL::SeaIceLayer)), // - rule(matchParams(260683), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Mode), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(260682), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Severity), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(129172), // - pointInTime(), // - typeOfLevel(TOL::HeightAboveGround)), // - rule(matchParams(165, 166, 207, 228029, 228131, 228132, 260260), // - pointInTime(), // - typeOfLevel(TOL::HeightAboveGroundAt10m), fixedLevel(10)), // - rule(matchParams(167, 168, 174096, 228037, 260242), // - pointInTime(), // - typeOfLevel(TOL::HeightAboveGroundAt2m), fixedLevel(2)), // - rule(matchParams(140245, 140249, 140233), // - pointInTime(), // - typeOfLevel(TOL::HeightAboveSeaAt10m), fixedLevel(10)), // - rule(matchParams(3075), // - pointInTime(), // - typeOfLevel(TOL::HighCloudLayer)), // - rule(matchParams(3074), // - pointInTime(), // - typeOfLevel(TOL::MediumCloudLayer)), // - rule(matchParams(3073), // - pointInTime(), // - typeOfLevel(TOL::LowCloudLayer)), // - rule(matchParams(228014), // - pointInTime(), // - typeOfLevel(TOL::IceLayerOnWater)), // - rule(matchParams(228013), // - pointInTime(), // - typeOfLevel(TOL::IceTopOnWater)), // - rule(matchParams(228010), // - pointInTime(), // - typeOfLevel(TOL::LakeBottom)), // - rule(matchParams(235305), - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), - typeOfLevel(TOL::LakeBottom)), - rule(matchParams(237305), - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), - typeOfLevel(TOL::LakeBottom)), - rule(matchParams(238305), - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), - typeOfLevel(TOL::LakeBottom)), - rule(matchParams(239305), - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), - typeOfLevel(TOL::LakeBottom)), - rule(matchParams(151), // - pointInTime(), // - typeOfLevel(TOL::MeanSea)), // - rule(matchParams(262118), // - pointInTime(), // - typeOfLevel(TOL::DepthBelowSeaLayer)), // - rule(matchParams(228231, 228232, 228233, 228234), // - pointInTime(), // - typeOfLevel(TOL::MixedLayerParcel)), // - rule(matchParams(228008, 228009), // - pointInTime(), // - typeOfLevel(TOL::MixingLayer)), // - rule(matchParams(228235, 228236, 228237), // - pointInTime(), // - typeOfLevel(TOL::MostUnstableParcel)), // - rule(matchParams(178, 179, 208, 209, 212), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Accumulation), // - typeOfLevel(TOL::NominalTop)), // - rule(matchParams(228045), // - pointInTime(), // - typeOfLevel(TOL::Tropopause)), // - rule(all( // - matchParams(228080, 228081, 228082, paramRange(233032, 233035), 235062, 235063, 235064), - matchChemical()), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Accumulation), // - chemical(), // - typeOfLevel(TOL::Surface), // - tablesConfig("custom"), localTablesVersion(0), tablesVersion(30)), // - rule( - matchParams( // - 8, 9, 20, 44, 45, 47, 50, 57, 58, paramRange(142, 147), 169, 175, 176, 177, 180, 181, 182, 189, 195, - 196, 197, 205, 210, 211, 213, 228, 239, 240, 3062, 3099, paramRange(162100, 162113), - paramRange(222001, 222256), 228021, 228022, 228129, 228130, 228143, 228144, 228216, 228228, 228251, - 231001, 231002, 231003, 231005, 231010, 231012, 231057, 231058, paramRange(233000, 233031), 260259), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Accumulation), - typeOfLevel(TOL::Surface)), // - rule(matchParams(228051, 228053), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Average), - overallLengthOfTimeRange("1h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(228057, 228059), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Average), - overallLengthOfTimeRange("3h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(228058, 228060), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Average), - overallLengthOfTimeRange("6h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(228026, 228222), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Maximum), - overallLengthOfTimeRange("3h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(228224, 228035, 228036), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Maximum), - overallLengthOfTimeRange("6h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(228027, 228223), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Minimum), - overallLengthOfTimeRange("3h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(228225), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Minimum), - overallLengthOfTimeRange("6h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(260320), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Mode), - overallLengthOfTimeRange("1h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(260321), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Mode), - overallLengthOfTimeRange("3h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(260339), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Mode), - overallLengthOfTimeRange("6h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(260318), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Severity), - overallLengthOfTimeRange("1h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(260319), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Severity), - overallLengthOfTimeRange("3h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(260338), // - timeRange(TimeRangeType::FixedTimeRange, TOSP::Severity), - overallLengthOfTimeRange("6h"), // - typeOfLevel(TOL::Surface)), // - rule(matchParams( // - paramRange(15, 18), paramRange(26, 32), 33, paramRange(34, 43), paramRange(66, 67), 74, 129, 134, 139, - 141, 148, 159, paramRange(160, 163), 170, paramRange(172, 174), paramRange(186, 188), 198, - paramRange(229, 232), paramRange(234, 236), 238, paramRange(243, 245), 3020, 3067, 160198, 200199, - 210200, 210201, 210202, 228003, 228012, paramRange(210186, 210191), 210262, 210263, 210264, - paramRange(228015, 228020), 228024, 228032, paramRange(228046, 228048), 228141, - paramRange(228217, 228221), 260004, 260005, 260015, 260038, 260048, 260109, 260121, 260123, 260255, - 260289, 260292, 260293, 260509, 260688, 261001, 261002, 261014, 261015, 261016, 261018, 262000, 262100, - 262139, 262140, 262144, 262124), // - pointInTime(), // - typeOfLevel(TOL::Surface)), // - rule(all( // - matchParams(paramRange(228083, 228085)), // - matchChemical()), // - pointInTime(), // - chemical(), - typeOfLevel(TOL::Surface)), // - rule(matchParams( // - paramRange(140098, 140105), paramRange(140112, 140113), paramRange(140121, 140129), - paramRange(140131, 140134), paramRange(140207, 140209), paramRange(140211, 140212), - paramRange(140214, 140232), paramRange(140234, 140239), 140244, paramRange(140246, 140248), - paramRange(140252, 140254)), // - pointInTime(), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(paramRange(140114, 140120)), // - pointInTime(), // - periodRange(), - typeOfLevel(TOL::Surface)), // - rule(matchParams(paramRange(143101, 143105), 143208, 143209, 143215, 143216, 143220, 143229, 143232, // - 228226, 237013, 237041, 237042, 237055, 237078, 237080, 237083, 237084, 237093, 237117, 237134, // - 237159, 237263, 237321), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(paramRange(144101, 144105), 144208, 144209, 144215, 144216, 144220, 144229, 144232, // - 228227, 238055, 238013, 238041, 238042, 238078, 238080, 238083, 238084, 238093, 238134, 238159, 238263), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(paramRange(145101, 145105), 145208, 145209, 145215, 145216, 145220, 145229, 145232, // - 239041, 239042, 239078, 239080, 239083, 239084, 239093, 239134, 239159, 239263), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), // - typeOfLevel(TOL::Surface)), // - rule(matchParams(140251), // - pointInTime(), // - dirFreq()), // - rule(matchParams(262104), // - pointInTime(), // - typeOfLevel(TOL::Isothermal)), // - - //----------------------------------------------------------------------------- - // Satellite - this is supported for ERA6. MultIOM is emiting levtype: sfc - // TODO(pgeier) Fix should be to not map satellite with levtype sfc - //----------------------------------------------------------------------------- - singleSatelliteRule() - - ); -} - - -auto paramHLRules() { - return exclusiveRuleList( // - "paramHLRules", // - rule(matchParams(10, 54, 130, 131, 132, 157, 246, 247, 3031), // - pointInTime(), // - typeOfLevel(TOL::HeightAboveGround)), // - rule(matchParams(235097, 235131, 235132), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::HeightAboveGround)), // - rule(matchParams(237097, 237131, 237132), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::HeightAboveGround)), // - rule(matchParams(238097, 238131, 238132), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::HeightAboveGround)), // - rule(matchParams(239097, 239131, 239132), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), // - typeOfLevel(TOL::HeightAboveGround)) // - ); -} - - -//----------------------------------------------------------------------------- -// ML -//----------------------------------------------------------------------------- - -// NOTE - levtype ML is always mapped to TOL::Hybrid - these rules can be generalized once the time mapping is mapped -// orthogonally -auto paramMLRules() { - return exclusiveRuleList( // - "paramMLRules", // - rule(matchParams(21, 22, 23, 75, 76, 77, paramRange(129, 133), 135, 138, 152, 155, 156, 157, 203, 246, 247, 248, - 260290, 260292, 260293), // - pointInTime(), // - typeOfLevel(TOL::Hybrid)), // - rule(matchParams(paramRange(162100, 162113)), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Accumulation), // - typeOfLevel(TOL::Hybrid)) // - ); -} - -//----------------------------------------------------------------------------- -// PL -//----------------------------------------------------------------------------- - -// Special composer to handle pressure units differently -// The exclusion list should be the outermost - hence we are passing in the specializations -template -auto plLevelRules(MkTail&& mkTail) { - return exclusiveRuleList( // - "plLevelRules", // - chainedRuleList( // - rule(greaterEqual(&dm::FullMarsRecord::levelist, 100), // - typeOfLevel(TOL::IsobaricInhPa)), - mkTail()), // - chainedRuleList( // - rule(lessThan(&dm::FullMarsRecord::levelist, 100), // - typeOfLevel(TOL::IsobaricInPa)), - mkTail()) // - ); -} - -auto paramPLRules() { - return plLevelRules([]() { - return exclusiveRuleList( // - "paramPLRules", // - rule(matchParams(1, 2, 10, 60, 75, 76, paramRange(129, 135), 138, 152, 155, 157, 203, 246, 247, 248, 157, - 260290), - pointInTime()), - rule(matchParams(235100, paramRange(235129, 235133), 235135, 235138, 235152, 235155, 235157, 235203, 235246, - 263107), - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average))); - }); -} - - -//----------------------------------------------------------------------------- -// PT -//----------------------------------------------------------------------------- - -auto paramPTRules() { - return exclusiveRuleList( // - "paramPTRules", // - rule(matchParams(53, 54, 60, 131, 132, 133, 138, 155, 203), // - pointInTime(), // - typeOfLevel(TOL::Theta)), // - rule(matchParams(235100, 235203), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::Theta)), // - rule(matchParams(237203), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::Theta)), // - rule(matchParams(238203), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::Theta)), // - rule(matchParams(239203), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, - TOSP::StandardDeviation), // - typeOfLevel(TOL::Theta)) // - ); -} - - -//----------------------------------------------------------------------------- -// PV -//----------------------------------------------------------------------------- - -auto paramPVRules() { - return exclusiveRuleList( // - "paramPVRules", // - rule(matchParams(3, 54, 129, 131, 132, 133, 203), // - pointInTime(), // - typeOfLevel(TOL::PotentialVorticity)), // - rule(matchParams(235098, 235269), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::PotentialVorticity)) // - ); -} - - -//----------------------------------------------------------------------------- -// Soil -//----------------------------------------------------------------------------- - -auto paramSOLRules() { - return exclusiveRuleList( // - "paramSOLRules", // - rule(matchParams(262000, 262024), // - pointInTime(), // - typeOfLevel(TOL::SeaIceLayer)), // - rule(matchParams(33, 74, 238, 228038, 228141), // - pointInTime(), // - typeOfLevel(TOL::SnowLayer)), // - rule(matchParams(260360, 260199, 183), // - pointInTime(), // - typeOfLevel(TOL::SoilLayer)), // - rule(matchParams(235077), // 235077 also exists on SOL ! - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::SoilLayer)), // - rule(matchParams(235078, 235080), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Average), // - typeOfLevel(TOL::SnowLayer)), // - rule(matchParams(237080), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Maximum), // - typeOfLevel(TOL::SnowLayer)), // - rule(matchParams(238080), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::Minimum), // - typeOfLevel(TOL::SnowLayer)), // - rule(matchParams(239080), // - timeRange(TimeRangeType::SinceLastPostProcessingStep, TOSP::StandardDeviation), // - typeOfLevel(TOL::SnowLayer)) // - ); -} - - -//----------------------------------------------------------------------------- -// Al -//----------------------------------------------------------------------------- - -auto paramAlRules() { - return exclusiveRuleList( // - "paramALRules", // - rule(matchParams(paramRange(213101, 213160)), // - pointInTime(), // - randomPattern(), // - typeOfLevel(TOL::AbstractSingleLevel)) // - ); -} - - -//----------------------------------------------------------------------------- -// Final composed param rules -//----------------------------------------------------------------------------- - -// TODO can be optimized by pulling the levtype check one level out - -// exclusiveRuleList( -// chainedRuleList(rule(matchLevType(XXX)), paramXXXRules()), -// .... -// ) - -auto horizontalRules() { - return exclusiveRuleList( // - "horizontalRules", // - chainedRuleList(rule(all(matchLevType(dm::LevType::SFC), Missing{&dm::FullMarsRecord::channel})), - paramSFCRules()), - - // By-passing rules - allow satellite products to pass without effects -- handled in `satelliteRules` - rule(all(matchLevType(dm::LevType::SFC), Has{&dm::FullMarsRecord::channel})), // - rule(all(Missing{&dm::FullMarsRecord::levtype}, Has{&dm::FullMarsRecord::channel})), - - // - chainedRuleList(rule(matchLevType(dm::LevType::HL)), paramHLRules()), - chainedRuleList(rule(matchLevType(dm::LevType::ML)), paramMLRules()), - chainedRuleList(rule(matchLevType(dm::LevType::PL)), paramPLRules()), - chainedRuleList(rule(matchLevType(dm::LevType::PT)), paramPTRules()), - chainedRuleList(rule(matchLevType(dm::LevType::PV)), paramPVRules()), - chainedRuleList(rule(matchLevType(dm::LevType::SOL)), paramSOLRules()), - chainedRuleList(rule(matchLevType(dm::LevType::AL)), paramAlRules())); -} - - -//----------------------------------------------------------------------------- -// Big rule tree... -//----------------------------------------------------------------------------- - -const ChainedRuleList& allRules() { - static auto all_ = chainedRuleList( // - gridRules(), // - localSectionRules(), // - processTypesRules(), // - horizontalRules(), // - satelliteRules(), // - packingRules() // - ); - - return all_; -} - -SectionsConf buildEncoderConf(const dm::FullMarsRecord& mars) { - SectionsConf sections; - if (!allRules()(mars, sections)) { - std::ostringstream oss; - oss << "Cannot map mars keys. None of the outermost rules apply: "; - util::print(oss, allRules()); - throw Mars2GribException(oss.str(), Here()); - } - dm::applyRecordDefaults(sections); - dm::validateRecord(sections); - return sections; -} - -} // namespace multio::mars2grib::rules diff --git a/src/multio/mars2grib/Rules.h b/src/multio/mars2grib/Rules.h deleted file mode 100644 index 733362520..000000000 --- a/src/multio/mars2grib/Rules.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#pragma once - -#include "multio/datamod/MarsMiscGeo.h" -#include "multio/mars2grib/EncoderConf.h" -#include "multio/mars2grib/rules/Rule.h" - - -namespace multio::mars2grib::rules { -using namespace rules; - -const ChainedRuleList& allRules(); - -SectionsConf buildEncoderConf(const dm::FullMarsRecord&); - -} // namespace multio::mars2grib::rules diff --git a/src/multio/mars2grib/api/RawAPI.cc b/src/multio/mars2grib/api/RawAPI.cc deleted file mode 100644 index 4f4e9c4a9..000000000 --- a/src/multio/mars2grib/api/RawAPI.cc +++ /dev/null @@ -1,14 +0,0 @@ -#include "RawAPI.h" - -namespace multio::mars2grib { - -Mars2GribRaw::Mars2GribRaw(RawOptions options) : cache_{} {} - -std::unique_ptr Mars2GribRaw::getHandle(const dm::FullMarsRecord& marsKeys, - const dm::MiscRecord& miscKeys, - const dm::Geometry& geoKeys) { - return cache_.getHandle(marsKeys, miscKeys, geoKeys); -} - -} // namespace multio::mars2grib - diff --git a/src/multio/mars2grib/api/RawAPI.h b/src/multio/mars2grib/api/RawAPI.h deleted file mode 100644 index 530627db7..000000000 --- a/src/multio/mars2grib/api/RawAPI.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#pragma once - -#include "multio/datamod/MarsMiscGeo.h" -#include "multio/mars2grib/EncoderCache.h" - -namespace multio::mars2grib { - -//--------------------------------------------------------------------------------------------------------------------- - -struct RawOptions { - bool cached = true; -}; - -//--------------------------------------------------------------------------------------------------------------------- - -class Mars2GribRaw { -public: - Mars2GribRaw(RawOptions options = RawOptions{}); // Only possible constructor - - Mars2GribRaw(const Mars2GribRaw&) = delete; - Mars2GribRaw(Mars2GribRaw&&) = default; - - - Mars2GribRaw& operator=(const Mars2GribRaw&) = delete; - Mars2GribRaw& operator=(Mars2GribRaw&&) = default; - - ~Mars2GribRaw() = default; - - std::unique_ptr getHandle(const dm::FullMarsRecord& marsKeys, const dm::MiscRecord& miscKeys, - const dm::Geometry& geoKeys); - -private: - EncoderCache cache_; -}; - -} // namespace multio::mars2grib diff --git a/src/multio/mars2grib/api/StableAPI.cc b/src/multio/mars2grib/api/StableAPI.cc deleted file mode 100644 index 35eb2fb24..000000000 --- a/src/multio/mars2grib/api/StableAPI.cc +++ /dev/null @@ -1,212 +0,0 @@ -#include "StableAPI.h" -#include "RawAPI.h" -#include "multio/datamod/AtlasGeo.h" -#include "multio/mars2grib/Mars2GribException.h" - -namespace multio::mars2grib { - -namespace dm = multio::datamod; - -RawOptions convertOptions(Options opts) { - RawOptions ret; - ret.cached = opts.cached; - return ret; -}; - -// Dispatching a key to an entry definition. -// If the passed type is not supported for the passed entry an Mars2GribException is throw -template -void setValOrThrow(const std::string& key, Rec& rec, V&& val) { - dm::dispatchEntry(key, rec, [&](const auto& entryDef) { - using EntryType = typename std::decay_t::EntryType; - if constexpr (EntryType::template CanSetValue_v) { - entryDef.get(rec).set(std::forward(val)); - } - else { - throw Mars2GribException("Unsupported type", Here()); - } - }); -} - -void MarsIdentifiers::set(const std::string& key, std::int64_t value) { - setValOrThrow(key, values_, value); -}; -void MarsIdentifiers::set(const std::string& key, const std::string& value) { - setValOrThrow(key, values_, value); -}; - -void AdditionalValues::setTablesVersion(std::int64_t value) { - dm::TablesVersion.get(values_).set(value); -} -void AdditionalValues::setGeneratingProcessIdentifier(std::int64_t value) { - dm::GeneratingProcessIdentifier.get(values_).set(value); -} -void AdditionalValues::setTypeOfProcessedData(std::int64_t value) { - dm::TypeOfProcessedDataEntry.get(values_).set(value); -} -void AdditionalValues::setInitialStep(std::int64_t value) { - dm::InitialStep.get(values_).set(value); -} -void AdditionalValues::setTimeIncrementInSeconds(std::int64_t value) { - dm::TimeIncrementInSeconds.get(values_).set(value); -} -void AdditionalValues::setLengthOfTimeWindowInSeconds(std::int64_t value) { - dm::LengthOfTimeWindowInSeconds.get(values_).set(value); -} -void AdditionalValues::setBitmapPresent(bool value) { - dm::BitmapPresent.get(values_).set(value); -} -void AdditionalValues::setMissingValue(double value) { - dm::MissingValue.get(values_).set(value); -} -void AdditionalValues::setTypeOfEnsembleForecast(std::int64_t value) { - dm::TypeOfEnsembleForecast.get(values_).set(value); -} -void AdditionalValues::setNumberOfForecastsInEnsemble(std::int64_t value) { - dm::NumberOfForecastsInEnsemble.get(values_).set(value); -} -void AdditionalValues::setSatelliteSeries(std::int64_t value) { - dm::SatelliteSeries.get(values_).set(value); -} -void AdditionalValues::setScaleFactorOfCentralWaveNumber(std::int64_t value) { - dm::ScaleFactorOfCentralWaveNumber.get(values_).set(value); -} -void AdditionalValues::setScaledValueOfCentralWaveNumber(std::int64_t value) { - dm::ScaledValueOfCentralWaveNumber.get(values_).set(value); -} -void AdditionalValues::setPV(std::reference_wrapper> value) { - dm::Pv.get(values_).set(value); -} -// TODO(pgeier) -// void AdditionalValues::setPV(std::int64_t numberOfLevels) { -// NOTIMP; -// } -void AdditionalValues::setWaveDirections(std::reference_wrapper> value) { - dm::WaveDirections.get(values_).set(value); -} -void AdditionalValues::setWaveFrequencies(std::reference_wrapper> value) { - dm::WaveFrequencies.get(values_).set(value); -} -void AdditionalValues::setBitsPerValue(std::int64_t value) { - dm::BitsPerValue.get(values_).set(value); -} - -GeometryType parseGeometryType(const std::string& val) { - if (val == "gg") { - return GeometryType::GG; - } - if (val == "ll") { - return GeometryType::LL; - } - if (val == "sh") { - return GeometryType::SH; - } - if (val == "HEALPix") { - return GeometryType::HEALPix; - } - throw Mars2GribException(std::string("Unknown geometry type ") + val, Here()); -}; - -dm::Geometry initGeometry(GeometryType t) { - switch (t) { - case GeometryType::GG: { - return dm::GeoGGRecord{}; - } - case GeometryType::LL: { - return dm::GeoLLRecord{}; - } - case GeometryType::HEALPix: { - return dm::GeoHEALPixRecord{}; - } - case GeometryType::SH: { - return dm::GeoSHRecord{}; - } - default: - throw Mars2GribException(std::string("initGeometry: Unhandled geometry type"), Here()); - } -} - - -void GeometryValues::setGeometryType(const std::string& type) { - setGeometryType(parseGeometryType(type)); -}; -void GeometryValues::setGeometryType(GeometryType type) { - values_ = initGeometry(type); -}; - - -void GeometryValues::set(const std::string& key, std::int64_t value) { - std::visit([&](auto& geoRec) { setValOrThrow(key, geoRec, value); }, values_); -} -void GeometryValues::set(const std::string& key, const std::string& value) { - std::visit([&](auto& geoRec) { setValOrThrow(key, geoRec, value); }, values_); -} -void GeometryValues::set(const std::string& key, std::reference_wrapper> value) { - std::visit([&](auto& geoRec) { setValOrThrow(key, geoRec, value); }, values_); -} - - -Mars2Grib::Mars2Grib(Options options) : rawApi_{convertOptions(options)} {}; - - -std::unique_ptr Mars2Grib::encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const GeometryValues& geo, const double* values, - size_t len) { - auto handle = rawApi_.getHandle(mars.values_, misc.values_, geo.values_); - handle->set("values", metkit::codes::Span(values, len)); - return handle; -} - -std::unique_ptr Mars2Grib::encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const GeometryValues& geo, const float* values, - size_t len) { - auto handle = rawApi_.getHandle(mars.values_, misc.values_, geo.values_); - handle->set("values", metkit::codes::Span(values, len)); - return handle; -} - -std::unique_ptr Mars2Grib::encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const GeometryValues& geo, - const std::vector& values) { - return encode(mars, misc, geo, values.data(), values.size()); -} - -std::unique_ptr Mars2Grib::encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const GeometryValues& geo, - const std::vector& values) { - return encode(mars, misc, geo, values.data(), values.size()); -} - -std::unique_ptr Mars2Grib::encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const double* values, size_t len) { - auto handle = rawApi_.getHandle(mars.values_, misc.values_, dm::makeUnscopedGeometry(mars.values_)); - handle->set("values", metkit::codes::Span(values, len)); - return handle; -} -std::unique_ptr Mars2Grib::encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const float* values, size_t len) { - auto handle = rawApi_.getHandle(mars.values_, misc.values_, dm::makeUnscopedGeometry(mars.values_)); - handle->set("values", metkit::codes::Span(values, len)); - return handle; -} - -std::unique_ptr Mars2Grib::encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const std::vector& values) { - return encode(mars, misc, values.data(), values.size()); -} -std::unique_ptr Mars2Grib::encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const std::vector& values) { - return encode(mars, misc, values.data(), values.size()); -} - -std::unique_ptr Mars2Grib::encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const GeometryValues& geo) { - return rawApi_.getHandle(mars.values_, misc.values_, geo.values_); -} - -std::unique_ptr Mars2Grib::encode(const MarsIdentifiers& mars, - const AdditionalValues& misc) { - return rawApi_.getHandle(mars.values_, misc.values_, dm::makeUnscopedGeometry(mars.values_)); -} - -} // namespace multio::mars2grib diff --git a/src/multio/mars2grib/api/StableAPI.h b/src/multio/mars2grib/api/StableAPI.h deleted file mode 100644 index 407f8890e..000000000 --- a/src/multio/mars2grib/api/StableAPI.h +++ /dev/null @@ -1,177 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#pragma once - -#include -#include -#include - -#include "multio/datamod/MarsMiscGeo.h" - -#include "multio/mars2grib/api/RawAPI.h" - -namespace multio::mars2grib { - -namespace dm = multio::datamod; - -//--------------------------------------------------------------------------------------------------------------------- - -struct Options { - bool cached = true; -}; - -//--------------------------------------------------------------------------------------------------------------------- - - -struct MarsIdentifiers { - void set(const std::string& key, std::int64_t value); - void set(const std::string& key, const std::string& value); - - // Implementation detail - // Can change in the future - dm::FullMarsRecord values_; -}; - - -//--------------------------------------------------------------------------------------------------------------------- - -/// Additional key/values for encoding -/// Alternative name suggestion: EncodingDetails -struct AdditionalValues { - /// Default is the latest tablesVersion - void setTablesVersion(std::int64_t); - - /// ATM we try to map these keys for a few combination of MARS keys - /// however, we can not guaratee to do it for all cases and it might need - /// customization - void setGeneratingProcessIdentifier(std::int64_t); - void setTypeOfProcessedData(std::int64_t); - - /// to be reviewed if required after implemneting statType & timeSpan properly - void setInitialStep(std::int64_t); - - /// Describe the time difference between points for inner most statistical computation - void setTimeIncrementInSeconds(std::int64_t); - - /// Used with ANOFFSET - /// anoffset: sets position within a time window - /// lengthOfTimeWindow: sets the duration of the analysis window - void setLengthOfTimeWindowInSeconds(std::int64_t); - - void setBitmapPresent(bool); - /// If bitmap present is set, missing value can be overwritten - void setMissingValue(double); - - void setTypeOfEnsembleForecast(std::int64_t); - void setNumberOfForecastsInEnsemble(std::int64_t); - - /// to be removed once DGOV updates MARS language - void setSatelliteSeries(std::int64_t); - /// to be checked if these are possibly derived from MARS keys - void setScaleFactorOfCentralWaveNumber(std::int64_t); - void setScaledValueOfCentralWaveNumber(std::int64_t); - - /// Will be inferred in the future given the numberOfLevels - /// For now the full array has to be provided - void setPV(std::reference_wrapper>); - /// TODO(pgeier) To be implemented ... - // void setPV(std::int64_t numberOfLevels); - - /// Will be inferred in the future. - /// For now the full array has to be provided - void setWaveDirections(std::reference_wrapper>); - void setWaveFrequencies(std::reference_wrapper>); - - /// Should be looked up by a table with Param, Levtype... - void setBitsPerValue(std::int64_t); - - /// Implementation detail - /// Can change in the future - dm::MiscRecord values_; -}; - - -enum class GeometryType : std::size_t -{ - GG, // gg - LL, // ll - SH, // sh - HEALPix, // HEALPix -}; - -struct GeometryValues { - - /// \brief Set the geometry type. - /// - /// This function sets the geometry type for the object. - /// Clears all values if the same type is set twice. - /// - /// \param type The geometry type identifier. Valid values are: - /// - `"gg"` : Gaussian grid - /// - `"sh"` : Spherical harmonics representation - /// - `"HEALPix"` : HEALPix - /// - `"ll"` : Latitude-longitude grid - /// - /// \throws Mars2GribException if `type` is not one of the valid values. - void setGeometryType(const std::string& key); - void setGeometryType(GeometryType key); - - void set(const std::string& key, std::int64_t value); - void set(const std::string& key, const std::string& value); - void set(const std::string& key, std::reference_wrapper>); - - // Implementation detail - // Can change in the future - dm::Geometry values_; -}; - - -class Mars2Grib { -public: - Mars2Grib(Options options = Options{}); // Only possible constructor - - Mars2Grib(const Mars2Grib&) = delete; - Mars2Grib(Mars2Grib&&) = default; - - - Mars2Grib& operator=(const Mars2Grib&) = delete; - Mars2Grib& operator=(Mars2Grib&&) = default; - - ~Mars2Grib() = default; - - - std::unique_ptr encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const GeometryValues& geom, const std::vector& values); - std::unique_ptr encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const GeometryValues& geom, const std::vector& values); - std::unique_ptr encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const GeometryValues& geom, const double* values, size_t len); - std::unique_ptr encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const GeometryValues& geom, const float* values, size_t len); - - std::unique_ptr encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const std::vector& values); - std::unique_ptr encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const std::vector& values); - std::unique_ptr encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const double* values, size_t len); - std::unique_ptr encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const float* values, size_t len); - - std::unique_ptr encode(const MarsIdentifiers& mars, const AdditionalValues& misc, - const GeometryValues& geom); - std::unique_ptr encode(const MarsIdentifiers& mars, const AdditionalValues& misc); - -private: - Mars2GribRaw rawApi_; -}; - -} // namespace multio::mars2grib diff --git a/src/multio/mars2grib/generated/InferPDT.h b/src/multio/mars2grib/generated/InferPDT.h deleted file mode 100644 index ab6aa6486..000000000 --- a/src/multio/mars2grib/generated/InferPDT.h +++ /dev/null @@ -1,1091 +0,0 @@ - -#pragma once - - -// -// !!!!!!!! -// !! !! -// !! !! -// !! !! -// !! !!!!!!!! !! -// !! !!!!!!!!!!!! !! -// !! !!!!!!!!!!!! !! -// !! !!!!!!!!!!!! !! -// !! !!!!!!!! !! -// !! !!!!!!!! !! -// !! !!!!!!!! !! -// !! !!!! !! -// !! !!!! !! -// !! !! -// !! !!!! !! -// !! !!!!!!!! !! -// !! !!!!!!!!!!!! !! -// !! !!!!!!!!!!!! !! -// !! !!!!!!!! !! -// !! !!!! !! -// !! !! -// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -// -// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -// !!! Do not modify. !!! -// !!! This file was generated by running `python3 GenerateCPP.py` !!! -// !!! in multio/share/multiom/generate_knowledge. !!! -// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - -#include -#include -#include -#include -#include - -#include "multio/util/Hash.h" -#include "multio/util/Print.h" -#include "multio/util/TypeTraits.h" - -#include "multio/datamod/core/Compare.h" -#include "multio/datamod/core/EntryDef.h" -#include "multio/datamod/core/Hash.h" -#include "multio/datamod/core/Print.h" -#include "multio/datamod/core/TypeParserDumper.h" -#include "multio/mars2grib/Mars2GribException.h" - - -namespace multio::mars2grib::rules { - -enum class TimeExtent : std::uint64_t -{ - None = 0, - TimeRange, - PointInTime, -}; - -} - -namespace multio::datamod { - -template <> -struct DumpType { - static std::string dump(multio::mars2grib::rules::TimeExtent v) { - using namespace multio::mars2grib::rules; - switch (v) { - case TimeExtent::None: - return "None"; - case TimeExtent::TimeRange: - return "timeRange"; - case TimeExtent::PointInTime: - return "pointInTime"; - default: - throw multio::mars2grib::Mars2GribException( - "DumpType::dump: Unexpected value for TimeExtent", Here()); - } - } -}; - -template <> -struct ParseType { - static multio::mars2grib::rules::TimeExtent parse(const std::string& s) { - using namespace multio::mars2grib::rules; - if (s == "None") { - return TimeExtent::None; - } - if (s == "timeRange") { - return TimeExtent::TimeRange; - } - if (s == "pointInTime") { - return TimeExtent::PointInTime; - } - throw multio::mars2grib::Mars2GribException{ - std::string("ParseType::parse(" - ") + s + std::string(" - "): Value for timeExtent does not match on of the following [None, timeRange, pointInTime]"), - Here()}; - } -}; - -} // namespace multio::datamod - - -namespace multio::util { - -template <> -struct Print { - static void print(PrintStream& ps, const multio::mars2grib::rules::TimeExtent& t) { - util::print(ps, multio::datamod::TypeDumper::dump(t)); - } -}; - -} // namespace multio::util - - -namespace multio::mars2grib::rules { - -enum class TimeFormat : std::uint64_t -{ - None = 0, - LocalTime, - WithReferencePeriod, -}; - -} - -namespace multio::datamod { - -template <> -struct DumpType { - static std::string dump(multio::mars2grib::rules::TimeFormat v) { - using namespace multio::mars2grib::rules; - switch (v) { - case TimeFormat::None: - return "None"; - case TimeFormat::LocalTime: - return "localTime"; - case TimeFormat::WithReferencePeriod: - return "withReferencePeriod"; - default: - throw multio::mars2grib::Mars2GribException( - "DumpType::dump: Unexpected value for TimeFormat", Here()); - } - } -}; - -template <> -struct ParseType { - static multio::mars2grib::rules::TimeFormat parse(const std::string& s) { - using namespace multio::mars2grib::rules; - if (s == "None") { - return TimeFormat::None; - } - if (s == "localTime") { - return TimeFormat::LocalTime; - } - if (s == "withReferencePeriod") { - return TimeFormat::WithReferencePeriod; - } - throw multio::mars2grib::Mars2GribException{ - std::string( - "ParseType::parse(" - ") + s + std::string(" - "): Value for timeFormat does not match on of the following [None, localTime, withReferencePeriod]"), - Here()}; - } -}; - -} // namespace multio::datamod - - -namespace multio::util { - -template <> -struct Print { - static void print(PrintStream& ps, const multio::mars2grib::rules::TimeFormat& t) { - util::print(ps, multio::datamod::TypeDumper::dump(t)); - } -}; - -} // namespace multio::util - - -namespace multio::mars2grib::rules { - -enum class SpatialExtent : std::uint64_t -{ - None = 0, - RandomPatterns, - GeneralisedTile, - ClusterStatCircular, - FocalStatistics, - ClusterStatRectangular, -}; - -} - -namespace multio::datamod { - -template <> -struct DumpType { - static std::string dump(multio::mars2grib::rules::SpatialExtent v) { - using namespace multio::mars2grib::rules; - switch (v) { - case SpatialExtent::None: - return "None"; - case SpatialExtent::RandomPatterns: - return "randomPatterns"; - case SpatialExtent::ClusterStatCircular: - return "clusterStatCircular"; - case SpatialExtent::GeneralisedTile: - return "generalisedTile"; - case SpatialExtent::FocalStatistics: - return "focalStatistics"; - case SpatialExtent::ClusterStatRectangular: - return "clusterStatRectangular"; - default: - throw multio::mars2grib::Mars2GribException( - "DumpType::dump: Unexpected value for SpatialExtent", Here()); - } - } -}; - -template <> -struct ParseType { - static multio::mars2grib::rules::SpatialExtent parse(const std::string& s) { - using namespace multio::mars2grib::rules; - if (s == "None") { - return SpatialExtent::None; - } - if (s == "randomPatterns") { - return SpatialExtent::RandomPatterns; - } - if (s == "clusterStatCircular") { - return SpatialExtent::ClusterStatCircular; - } - if (s == "generalisedTile") { - return SpatialExtent::GeneralisedTile; - } - if (s == "focalStatistics") { - return SpatialExtent::FocalStatistics; - } - if (s == "clusterStatRectangular") { - return SpatialExtent::ClusterStatRectangular; - } - throw multio::mars2grib::Mars2GribException{ - std::string("ParseType::parse(" - ") + s + std::string(" - "): Value for spatialExtent does not match on of the following [None, randomPatterns, " - "clusterStatCircular, generalisedTile, focalStatistics, clusterStatRectangular]"), - Here()}; - } -}; - -} // namespace multio::datamod - - -namespace multio::util { - -template <> -struct Print { - static void print(PrintStream& ps, const multio::mars2grib::rules::SpatialExtent& t) { - util::print(ps, multio::datamod::TypeDumper::dump(t)); - } -}; - -} // namespace multio::util - - -namespace multio::mars2grib::rules { - -enum class ProcessType : std::uint64_t -{ - None = 0, - Percentile, - Quantile, - Probability, - Reforecast, - Categorial, - DerivedForecast, -}; - -} - -namespace multio::datamod { - -template <> -struct DumpType { - static std::string dump(multio::mars2grib::rules::ProcessType v) { - using namespace multio::mars2grib::rules; - switch (v) { - case ProcessType::None: - return "None"; - case ProcessType::Percentile: - return "percentile"; - case ProcessType::Quantile: - return "quantile"; - case ProcessType::Probability: - return "probability"; - case ProcessType::Reforecast: - return "reforecast"; - case ProcessType::Categorial: - return "categorial"; - case ProcessType::DerivedForecast: - return "derivedForecast"; - default: - throw multio::mars2grib::Mars2GribException( - "DumpType::dump: Unexpected value for ProcessType", Here()); - } - } -}; - -template <> -struct ParseType { - static multio::mars2grib::rules::ProcessType parse(const std::string& s) { - using namespace multio::mars2grib::rules; - if (s == "None") { - return ProcessType::None; - } - if (s == "percentile") { - return ProcessType::Percentile; - } - if (s == "quantile") { - return ProcessType::Quantile; - } - if (s == "probability") { - return ProcessType::Probability; - } - if (s == "reforecast") { - return ProcessType::Reforecast; - } - if (s == "categorial") { - return ProcessType::Categorial; - } - if (s == "derivedForecast") { - return ProcessType::DerivedForecast; - } - throw multio::mars2grib::Mars2GribException{ - std::string("ParseType::parse(" - ") + s + std::string(" - "): Value for processType does not match on of the following [None, percentile, quantile, " - "probability, reforecast, categorial, derivedForecast]"), - Here()}; - } -}; - -} // namespace multio::datamod - - -namespace multio::util { - -template <> -struct Print { - static void print(PrintStream& ps, const multio::mars2grib::rules::ProcessType& t) { - util::print(ps, multio::datamod::TypeDumper::dump(t)); - } -}; - -} // namespace multio::util - - -namespace multio::mars2grib::rules { - -enum class ProcessSubType : std::uint64_t -{ - None = 0, - LargeEnsemble, - Ensemble, -}; - -} - -namespace multio::datamod { - -template <> -struct DumpType { - static std::string dump(multio::mars2grib::rules::ProcessSubType v) { - using namespace multio::mars2grib::rules; - switch (v) { - case ProcessSubType::None: - return "None"; - case ProcessSubType::LargeEnsemble: - return "largeEnsemble"; - case ProcessSubType::Ensemble: - return "ensemble"; - default: - throw multio::mars2grib::Mars2GribException( - "DumpType::dump: Unexpected value for ProcessSubType", Here()); - } - } -}; - -template <> -struct ParseType { - static multio::mars2grib::rules::ProcessSubType parse(const std::string& s) { - using namespace multio::mars2grib::rules; - if (s == "None") { - return ProcessSubType::None; - } - if (s == "largeEnsemble") { - return ProcessSubType::LargeEnsemble; - } - if (s == "ensemble") { - return ProcessSubType::Ensemble; - } - throw multio::mars2grib::Mars2GribException{ - std::string( - "ParseType::parse(" - ") + s + std::string(" - "): Value for processSubType does not match on of the following [None, largeEnsemble, ensemble]"), - Here()}; - } -}; - -} // namespace multio::datamod - - -namespace multio::util { - -template <> -struct Print { - static void print(PrintStream& ps, const multio::mars2grib::rules::ProcessSubType& t) { - util::print(ps, multio::datamod::TypeDumper::dump(t)); - } -}; - -} // namespace multio::util - - -namespace multio::mars2grib::rules { - -enum class ProductCategory : std::uint64_t -{ - None = 0, - Aerosol, - CcittIA5, - CrossSect, - Radar, - SpatialStatisticalProcessing, - Wave, - PostProcess, - Chemical, - Partitioned, - Hovmoeller, - Optical, - SpatioTemporalTile, - Satellite, -}; - -} - -namespace multio::datamod { - -template <> -struct DumpType { - static std::string dump(multio::mars2grib::rules::ProductCategory v) { - using namespace multio::mars2grib::rules; - switch (v) { - case ProductCategory::None: - return "None"; - case ProductCategory::Aerosol: - return "aerosol"; - case ProductCategory::CcittIA5: - return "ccittIA5"; - case ProductCategory::CrossSect: - return "crossSect"; - case ProductCategory::Radar: - return "radar"; - case ProductCategory::SpatialStatisticalProcessing: - return "spatialStatisticalProcessing"; - case ProductCategory::Wave: - return "wave"; - case ProductCategory::PostProcess: - return "postProcess"; - case ProductCategory::Chemical: - return "chemical"; - case ProductCategory::Partitioned: - return "partitioned"; - case ProductCategory::Hovmoeller: - return "hovmoeller"; - case ProductCategory::Optical: - return "optical"; - case ProductCategory::SpatioTemporalTile: - return "spatioTemporalTile"; - case ProductCategory::Satellite: - return "satellite"; - default: - throw multio::mars2grib::Mars2GribException( - "DumpType::dump: Unexpected value for ProductCategory", Here()); - } - } -}; - -template <> -struct ParseType { - static multio::mars2grib::rules::ProductCategory parse(const std::string& s) { - using namespace multio::mars2grib::rules; - if (s == "None") { - return ProductCategory::None; - } - if (s == "aerosol") { - return ProductCategory::Aerosol; - } - if (s == "ccittIA5") { - return ProductCategory::CcittIA5; - } - if (s == "crossSect") { - return ProductCategory::CrossSect; - } - if (s == "radar") { - return ProductCategory::Radar; - } - if (s == "spatialStatisticalProcessing") { - return ProductCategory::SpatialStatisticalProcessing; - } - if (s == "wave") { - return ProductCategory::Wave; - } - if (s == "postProcess") { - return ProductCategory::PostProcess; - } - if (s == "chemical") { - return ProductCategory::Chemical; - } - if (s == "partitioned") { - return ProductCategory::Partitioned; - } - if (s == "hovmoeller") { - return ProductCategory::Hovmoeller; - } - if (s == "optical") { - return ProductCategory::Optical; - } - if (s == "spatioTemporalTile") { - return ProductCategory::SpatioTemporalTile; - } - if (s == "satellite") { - return ProductCategory::Satellite; - } - throw multio::mars2grib::Mars2GribException{ - std::string("ParseType::parse(" - ") + s + std::string(" - "): Value for productCategory does not match on of the following [None, aerosol, ccittIA5, " - "crossSect, radar, spatialStatisticalProcessing, wave, postProcess, chemical, partitioned, " - "hovmoeller, optical, spatioTemporalTile, satellite]"), - Here()}; - } -}; - -} // namespace multio::datamod - - -namespace multio::util { - -template <> -struct Print { - static void print(PrintStream& ps, const multio::mars2grib::rules::ProductCategory& t) { - util::print(ps, multio::datamod::TypeDumper::dump(t)); - } -}; - -} // namespace multio::util - - -namespace multio::mars2grib::rules { - -enum class ProductSubCategory : std::uint64_t -{ - None = 0, - SpectraFormula, - QualityValue, - PeriodRange, - SpectraList, - SourceSink, - StatisticalOverLatLong, - RadioNuclide, - OpticalSourceSink, - Distribution, - Optical, -}; - -} - -namespace multio::datamod { - -template <> -struct DumpType { - static std::string dump(multio::mars2grib::rules::ProductSubCategory v) { - using namespace multio::mars2grib::rules; - switch (v) { - case ProductSubCategory::None: - return "None"; - case ProductSubCategory::SpectraFormula: - return "spectraFormula"; - case ProductSubCategory::QualityValue: - return "qualityValue"; - case ProductSubCategory::PeriodRange: - return "periodRange"; - case ProductSubCategory::SpectraList: - return "spectraList"; - case ProductSubCategory::SourceSink: - return "sourceSink"; - case ProductSubCategory::StatisticalOverLatLong: - return "statisticalOverLatLong"; - case ProductSubCategory::RadioNuclide: - return "radioNuclide"; - case ProductSubCategory::OpticalSourceSink: - return "opticalSourceSink"; - case ProductSubCategory::Distribution: - return "distribution"; - case ProductSubCategory::Optical: - return "optical"; - default: - throw multio::mars2grib::Mars2GribException( - "DumpType::dump: Unexpected value for ProductSubCategory", Here()); - } - } -}; - -template <> -struct ParseType { - static multio::mars2grib::rules::ProductSubCategory parse(const std::string& s) { - using namespace multio::mars2grib::rules; - if (s == "None") { - return ProductSubCategory::None; - } - if (s == "spectraFormula") { - return ProductSubCategory::SpectraFormula; - } - if (s == "qualityValue") { - return ProductSubCategory::QualityValue; - } - if (s == "periodRange") { - return ProductSubCategory::PeriodRange; - } - if (s == "spectraList") { - return ProductSubCategory::SpectraList; - } - if (s == "sourceSink") { - return ProductSubCategory::SourceSink; - } - if (s == "statisticalOverLatLong") { - return ProductSubCategory::StatisticalOverLatLong; - } - if (s == "radioNuclide") { - return ProductSubCategory::RadioNuclide; - } - if (s == "opticalSourceSink") { - return ProductSubCategory::OpticalSourceSink; - } - if (s == "distribution") { - return ProductSubCategory::Distribution; - } - if (s == "optical") { - return ProductSubCategory::Optical; - } - throw multio::mars2grib::Mars2GribException{ - std::string("ParseType::parse(" - ") + s + std::string(" - "): Value for productSubCategory does not match on of the following [None, spectraFormula, " - "qualityValue, periodRange, spectraList, sourceSink, statisticalOverLatLong, radioNuclide, " - "opticalSourceSink, distribution, optical]"), - Here()}; - } -}; - -} // namespace multio::datamod - - -namespace multio::util { - -template <> -struct Print { - static void print(PrintStream& ps, const multio::mars2grib::rules::ProductSubCategory& t) { - util::print(ps, multio::datamod::TypeDumper::dump(t)); - } -}; - -} // namespace multio::util - - -namespace multio::mars2grib::rules { - -namespace dm = multio::datamod; - -constexpr auto TimeExtentEntry - = dm::EntryDef{"timeExtent"}.withDefault(TimeExtent::None).withAccessor([](auto&& v) { - return &v.timeExtent; - }); -constexpr auto TimeFormatEntry - = dm::EntryDef{"timeFormat"}.withDefault(TimeFormat::None).withAccessor([](auto&& v) { - return &v.timeFormat; - }); -constexpr auto SpatialExtentEntry - = dm::EntryDef{"spatialExtent"}.withDefault(SpatialExtent::None).withAccessor([](auto&& v) { - return &v.spatialExtent; - }); -constexpr auto ProcessTypeEntry - = dm::EntryDef{"processType"}.withDefault(ProcessType::None).withAccessor([](auto&& v) { - return &v.processType; - }); -constexpr auto ProcessSubTypeEntry - = dm::EntryDef{"processSubType"}.withDefault(ProcessSubType::None).withAccessor([](auto&& v) { - return &v.processSubType; - }); -constexpr auto ProductCategoryEntry - = dm::EntryDef{"productCategory"}.withDefault(ProductCategory::None).withAccessor([](auto&& v) { - return &v.productCategory; - }); -constexpr auto ProductSubCategoryEntry = dm::EntryDef{"productSubCategory"} - .withDefault(ProductSubCategory::None) - .withAccessor([](auto&& v) { return &v.productSubCategory; }); - -struct PDTCat { - dm::EntryType_t timeExtent; - dm::EntryType_t timeFormat; - dm::EntryType_t spatialExtent; - dm::EntryType_t processType; - dm::EntryType_t processSubType; - dm::EntryType_t productCategory; - dm::EntryType_t productSubCategory; - - static constexpr std::string_view record_name_ = "product-categories"; - static constexpr auto record_entries_ - = std::make_tuple(TimeExtentEntry, TimeFormatEntry, SpatialExtentEntry, ProcessTypeEntry, ProcessSubTypeEntry, - ProductCategoryEntry, ProductSubCategoryEntry); -}; - -}; // namespace multio::mars2grib::rules - -namespace std { - -template <> -struct equal_to : multio::datamod::EqualToRecord {}; -template <> -struct not_equal_to : multio::datamod::NotEqualToRecord {}; - - -template <> -struct hash : multio::datamod::HashRecord {}; -} // namespace std - -namespace multio::util { -template <> -struct Print : multio::datamod::PrintRecord {}; - -} // namespace multio::util - - -namespace multio::mars2grib::rules { - -template -struct InferPdt { - - using DecisionMap = std::unordered_map; - - - std::int64_t inferProductDefinitionTemplateNumber(const PDTCat& pdtCat) const { - using namespace multio::datamod; - static const DecisionMap map{ - {{PDTCat{TimeExtent::None, TimeFormat::None, SpatialExtent::None, ProcessType::None, ProcessSubType::None, - ProductCategory::Satellite, ProductSubCategory::None}, - 31}, - {PDTCat{TimeExtent::None, TimeFormat::None, SpatialExtent::None, ProcessType::None, ProcessSubType::None, - ProductCategory::Satellite, ProductSubCategory::QualityValue}, - 35}, - {PDTCat{TimeExtent::None, TimeFormat::None, SpatialExtent::None, ProcessType::None, ProcessSubType::None, - ProductCategory::Radar, ProductSubCategory::None}, - 20}, - {PDTCat{TimeExtent::None, TimeFormat::None, SpatialExtent::None, ProcessType::None, ProcessSubType::None, - ProductCategory::CcittIA5, ProductSubCategory::None}, - 254}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 8}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Aerosol, ProductSubCategory::None}, - 46}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Aerosol, ProductSubCategory::SourceSink}, - 82}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::CrossSect, ProductSubCategory::None}, - 1001}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::PostProcess, ProductSubCategory::None}, - 72}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Chemical, ProductSubCategory::None}, - 42}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Chemical, ProductSubCategory::Distribution}, - 67}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Chemical, ProductSubCategory::SourceSink}, - 78}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Chemical, ProductSubCategory::RadioNuclide}, - 126}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Hovmoeller, ProductSubCategory::None}, - 1101}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Optical, ProductSubCategory::None}, - 110}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::SpatioTemporalTile, ProductSubCategory::None}, - 62}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::LargeEnsemble, ProductCategory::None, ProductSubCategory::None}, - 118}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 11}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Aerosol, ProductSubCategory::None}, - 85}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Aerosol, ProductSubCategory::SourceSink}, - 84}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::PostProcess, ProductSubCategory::None}, - 73}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Chemical, ProductSubCategory::None}, - 43}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Chemical, ProductSubCategory::Distribution}, - 68}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Chemical, ProductSubCategory::SourceSink}, - 79}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Chemical, ProductSubCategory::RadioNuclide}, - 127}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Optical, ProductSubCategory::None}, - 111}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::SpatioTemporalTile, ProductSubCategory::None}, - 63}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Satellite, ProductSubCategory::None}, - 34}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::Percentile, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 10}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::Quantile, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 87}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::Probability, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 9}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::Probability, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 120}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::Reforecast, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 61}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::Categorial, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 91}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::None, ProcessType::DerivedForecast, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 12}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::ClusterStatCircular, - ProcessType::DerivedForecast, ProcessSubType::Ensemble, ProductCategory::None, - ProductSubCategory::None}, - 14}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::GeneralisedTile, ProcessType::None, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 114}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::GeneralisedTile, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 116}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::FocalStatistics, ProcessType::Probability, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 122}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::None, SpatialExtent::ClusterStatRectangular, - ProcessType::DerivedForecast, ProcessSubType::Ensemble, ProductCategory::None, - ProductSubCategory::None}, - 13}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::LocalTime, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 95}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::LocalTime, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::PostProcess, ProductSubCategory::None}, - 97}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::LocalTime, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 96}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::LocalTime, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::PostProcess, ProductSubCategory::None}, - 98}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::WithReferencePeriod, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 105}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::WithReferencePeriod, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 106}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::WithReferencePeriod, SpatialExtent::None, - ProcessType::Probability, ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 112}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::WithReferencePeriod, SpatialExtent::None, - ProcessType::DerivedForecast, ProcessSubType::Ensemble, ProductCategory::None, - ProductSubCategory::None}, - 107}, - {PDTCat{TimeExtent::TimeRange, TimeFormat::WithReferencePeriod, SpatialExtent::FocalStatistics, - ProcessType::Probability, ProcessSubType::Ensemble, ProductCategory::None, - ProductSubCategory::None}, - 123}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 0}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Aerosol, ProductSubCategory::Optical}, - 48}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Aerosol, ProductSubCategory::OpticalSourceSink}, - 80}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::CrossSect, ProductSubCategory::None}, - 1000}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::CrossSect, ProductSubCategory::StatisticalOverLatLong}, - 1002}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::SpatialStatisticalProcessing, ProductSubCategory::None}, - 15}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Wave, ProductSubCategory::SpectraFormula}, - 101}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Wave, ProductSubCategory::SpectraList}, - 99}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Wave, ProductSubCategory::PeriodRange}, - 103}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::PostProcess, ProductSubCategory::None}, - 70}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Chemical, ProductSubCategory::None}, - 40}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Chemical, ProductSubCategory::Distribution}, - 57}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Chemical, ProductSubCategory::SourceSink}, - 76}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Chemical, ProductSubCategory::RadioNuclide}, - 124}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Partitioned, ProductSubCategory::None}, - 53}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Hovmoeller, ProductSubCategory::None}, - 1100}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Optical, ProductSubCategory::None}, - 108}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::SpatioTemporalTile, ProductSubCategory::None}, - 55}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::Satellite, ProductSubCategory::None}, - 32}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::LargeEnsemble, ProductCategory::None, ProductSubCategory::None}, - 117}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 1}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Aerosol, ProductSubCategory::None}, - 45}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Aerosol, ProductSubCategory::Optical}, - 49}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Aerosol, ProductSubCategory::OpticalSourceSink}, - 81}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Wave, ProductSubCategory::SpectraFormula}, - 102}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Wave, ProductSubCategory::SpectraList}, - 100}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Wave, ProductSubCategory::PeriodRange}, - 104}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::PostProcess, ProductSubCategory::None}, - 71}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Chemical, ProductSubCategory::None}, - 41}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Chemical, ProductSubCategory::Distribution}, - 58}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Chemical, ProductSubCategory::SourceSink}, - 77}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Chemical, ProductSubCategory::RadioNuclide}, - 125}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Partitioned, ProductSubCategory::None}, - 54}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Optical, ProductSubCategory::None}, - 109}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::SpatioTemporalTile, ProductSubCategory::None}, - 59}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::Satellite, ProductSubCategory::None}, - 33}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::Percentile, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 6}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::Quantile, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 86}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::Probability, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 5}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::Probability, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 119}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::Reforecast, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 60}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::Categorial, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 51}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::None, ProcessType::DerivedForecast, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 2}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::RandomPatterns, ProcessType::None, - ProcessSubType::LargeEnsemble, ProductCategory::None, ProductSubCategory::None}, - 143}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::ClusterStatCircular, - ProcessType::DerivedForecast, ProcessSubType::Ensemble, ProductCategory::None, - ProductSubCategory::None}, - 4}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::GeneralisedTile, ProcessType::None, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 113}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::GeneralisedTile, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 115}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::FocalStatistics, - ProcessType::Probability, ProcessSubType::Ensemble, ProductCategory::None, - ProductSubCategory::None}, - 121}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::None, SpatialExtent::ClusterStatRectangular, - ProcessType::DerivedForecast, ProcessSubType::Ensemble, ProductCategory::None, - ProductSubCategory::None}, - 3}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::LocalTime, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::None, ProductSubCategory::None}, - 88}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::LocalTime, SpatialExtent::None, ProcessType::None, - ProcessSubType::None, ProductCategory::PostProcess, ProductSubCategory::None}, - 93}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::LocalTime, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::None, ProductSubCategory::None}, - 92}, - {PDTCat{TimeExtent::PointInTime, TimeFormat::LocalTime, SpatialExtent::None, ProcessType::None, - ProcessSubType::Ensemble, ProductCategory::PostProcess, ProductSubCategory::None}, - 94}}}; - - if (auto search = map.find(pdtCat); search != map.end()) { - return search->second; - } - - std::ostringstream oss; - oss << "PDT categories can not be mapped to a pdt number: "; - util::print(oss, pdtCat); - throw Mars2GribException(oss.str(), Here()); - } -}; - -} // namespace multio::mars2grib::rules diff --git a/src/multio/mars2grib/generated/InferPDTTest.h b/src/multio/mars2grib/generated/InferPDTTest.h deleted file mode 100644 index 4413b1925..000000000 --- a/src/multio/mars2grib/generated/InferPDTTest.h +++ /dev/null @@ -1,762 +0,0 @@ - -#pragma once -#include -#include - -#include "multio/message/Metadata.h" - -namespace multio::mars2grib::rules::test { - -struct PdtWithSelector { - std::int64_t productDefinitionTemplateNumber; - message::Metadata selector; -}; - -const static std::vector mappedPdtAndSelectors{{20, - {{"timeExtent", "None"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "radar"}}}, - {254, - {{"timeExtent", "None"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "ccittIA5"}}}, - {31, - {{"timeExtent", "None"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "satellite"}, - {"productSubCategory", "None"}}}, - {35, - {{"timeExtent", "None"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "satellite"}, - {"productSubCategory", "qualityValue"}}}, - {0, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "None"}}}, - {70, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "postProcess"}}}, - {53, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "partitioned"}}}, - {15, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "spatialStatisticalProcessing"}}}, - {55, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "spatioTemporalTile"}}}, - {1100, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "hovmoeller"}}}, - {108, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "optical"}}}, - {99, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "wave"}, - {"productSubCategory", "spectraList"}}}, - {101, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "wave"}, - {"productSubCategory", "spectraFormula"}}}, - {103, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "wave"}, - {"productSubCategory", "periodRange"}}}, - {32, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "satellite"}, - {"productSubCategory", "None"}}}, - {48, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "aerosol"}, - {"productSubCategory", "optical"}}}, - {80, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "aerosol"}, - {"productSubCategory", "opticalSourceSink"}}}, - {40, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "chemical"}, - {"productSubCategory", "None"}}}, - {76, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "chemical"}, - {"productSubCategory", "sourceSink"}}}, - {124, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "chemical"}, - {"productSubCategory", "radioNuclide"}}}, - {57, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "chemical"}, - {"productSubCategory", "distribution"}}}, - {1000, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "crossSect"}, - {"productSubCategory", "None"}}}, - {1002, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "crossSect"}, - {"productSubCategory", "statisticalOverLatLong"}}}, - {1, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {71, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "postProcess"}}}, - {54, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "partitioned"}}}, - {59, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "spatioTemporalTile"}}}, - {109, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "optical"}}}, - {100, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "wave"}, - {"productSubCategory", "spectraList"}}}, - {102, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "wave"}, - {"productSubCategory", "spectraFormula"}}}, - {104, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "wave"}, - {"productSubCategory", "periodRange"}}}, - {33, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "satellite"}, - {"productSubCategory", "None"}}}, - {45, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "aerosol"}, - {"productSubCategory", "None"}}}, - {49, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "aerosol"}, - {"productSubCategory", "optical"}}}, - {81, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "aerosol"}, - {"productSubCategory", "opticalSourceSink"}}}, - {41, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "chemical"}, - {"productSubCategory", "None"}}}, - {77, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "chemical"}, - {"productSubCategory", "sourceSink"}}}, - {125, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "chemical"}, - {"productSubCategory", "radioNuclide"}}}, - {58, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "chemical"}, - {"productSubCategory", "distribution"}}}, - {117, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "largeEnsemble"}, - {"productCategory", "None"}}}, - {60, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "reforecast"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {2, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "derivedForecast"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {5, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "probability"}, - {"processSubType", "None"}, - {"productCategory", "None"}}}, - {119, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "probability"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {6, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "percentile"}, - {"productCategory", "None"}}}, - {86, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "quantile"}, - {"productCategory", "None"}}}, - {51, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "categorial"}, - {"productCategory", "None"}}}, - {113, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "generalisedTile"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "None"}}}, - {115, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "generalisedTile"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {121, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "focalStatistics"}, - {"processType", "probability"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {4, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "clusterStatCircular"}, - {"processType", "derivedForecast"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {3, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "clusterStatRectangular"}, - {"processType", "derivedForecast"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {143, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "None"}, - {"spatialExtent", "randomPatterns"}, - {"processType", "None"}, - {"processSubType", "largeEnsemble"}, - {"productCategory", "None"}}}, - {88, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "localTime"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "None"}}}, - {93, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "localTime"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "postProcess"}}}, - {92, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "localTime"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {94, - {{"timeExtent", "pointInTime"}, - {"timeFormat", "localTime"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "postProcess"}}}, - {8, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "None"}}}, - {72, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "postProcess"}}}, - {62, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "spatioTemporalTile"}}}, - {1101, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "hovmoeller"}}}, - {110, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "optical"}}}, - {46, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "aerosol"}, - {"productSubCategory", "None"}}}, - {82, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "aerosol"}, - {"productSubCategory", "sourceSink"}}}, - {42, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "chemical"}, - {"productSubCategory", "None"}}}, - {78, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "chemical"}, - {"productSubCategory", "sourceSink"}}}, - {126, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "chemical"}, - {"productSubCategory", "radioNuclide"}}}, - {67, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "chemical"}, - {"productSubCategory", "distribution"}}}, - {1001, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "crossSect"}, - {"productSubCategory", "None"}}}, - {11, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {73, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "postProcess"}}}, - {63, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "spatioTemporalTile"}}}, - {111, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "optical"}}}, - {34, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "satellite"}, - {"productSubCategory", "None"}}}, - {85, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "aerosol"}, - {"productSubCategory", "None"}}}, - {84, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "aerosol"}, - {"productSubCategory", "sourceSink"}}}, - {43, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "chemical"}, - {"productSubCategory", "None"}}}, - {79, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "chemical"}, - {"productSubCategory", "sourceSink"}}}, - {127, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "chemical"}, - {"productSubCategory", "radioNuclide"}}}, - {68, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "chemical"}, - {"productSubCategory", "distribution"}}}, - {118, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "largeEnsemble"}, - {"productCategory", "None"}}}, - {61, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "reforecast"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {12, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "derivedForecast"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {9, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "probability"}, - {"processSubType", "None"}, - {"productCategory", "None"}}}, - {120, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "probability"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {10, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "percentile"}, - {"productCategory", "None"}}}, - {87, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "quantile"}, - {"productCategory", "None"}}}, - {91, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "None"}, - {"processType", "categorial"}, - {"productCategory", "None"}}}, - {114, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "generalisedTile"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "None"}}}, - {116, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "generalisedTile"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {122, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "focalStatistics"}, - {"processType", "probability"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {14, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "clusterStatCircular"}, - {"processType", "derivedForecast"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {13, - {{"timeExtent", "timeRange"}, - {"timeFormat", "None"}, - {"spatialExtent", "clusterStatRectangular"}, - {"processType", "derivedForecast"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {95, - {{"timeExtent", "timeRange"}, - {"timeFormat", "localTime"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "None"}}}, - {97, - {{"timeExtent", "timeRange"}, - {"timeFormat", "localTime"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "postProcess"}}}, - {96, - {{"timeExtent", "timeRange"}, - {"timeFormat", "localTime"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {98, - {{"timeExtent", "timeRange"}, - {"timeFormat", "localTime"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "postProcess"}}}, - {105, - {{"timeExtent", "timeRange"}, - {"timeFormat", "withReferencePeriod"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "None"}, - {"productCategory", "None"}}}, - {106, - {{"timeExtent", "timeRange"}, - {"timeFormat", "withReferencePeriod"}, - {"spatialExtent", "None"}, - {"processType", "None"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {107, - {{"timeExtent", "timeRange"}, - {"timeFormat", "withReferencePeriod"}, - {"spatialExtent", "None"}, - {"processType", "derivedForecast"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}, - {112, - {{"timeExtent", "timeRange"}, - {"timeFormat", "withReferencePeriod"}, - {"spatialExtent", "None"}, - {"processType", "probability"}, - {"processSubType", "None"}, - {"productCategory", "None"}}}, - {123, - {{"timeExtent", "timeRange"}, - {"timeFormat", "withReferencePeriod"}, - {"spatialExtent", "focalStatistics"}, - {"processType", "probability"}, - {"processSubType", "ensemble"}, - {"productCategory", "None"}}}}; -} // namespace multio::mars2grib::rules::test diff --git a/src/multio/mars2grib/multiom/MultIOMDict.cc b/src/multio/mars2grib/multiom/MultIOMDict.cc deleted file mode 100644 index 4c74e6abe..000000000 --- a/src/multio/mars2grib/multiom/MultIOMDict.cc +++ /dev/null @@ -1,139 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation nor - * does it submit to any jurisdiction. - */ - -#include "MultIOMDict.h" - -#include "eckit/log/Log.h" - -#include "multio/mars2grib/Mars2GribException.h" -#include "multiom/encoders/api/dictionaries/c/api_dictionaries.h" - -namespace multio::mars2grib { - -namespace dm = multio::datamod; - -std::string multIOMDictKindString(MultIOMDictKind kind) { - switch (kind) { - case MultIOMDictKind::Options: - return "options"; - case MultIOMDictKind::MARS: - return "mars"; - case MultIOMDictKind::Parametrization: - return "parametrization"; - case MultIOMDictKind::ReducedGG: - return "reduced-gg"; - case MultIOMDictKind::RegularLL: - return "regular-ll"; - case MultIOMDictKind::SH: - return "sh"; - case MultIOMDictKind::HEALPix: - return "HEALPix"; - default: - NOTIMP; - } -} - - -MultIOMDict::MultIOMDict(MultIOMDictKind kind) : kind_{kind} { - std::string kindStr = multIOMDictKindString(kind); - void* dict = NULL; - if (multio_grib2_dict_create(&dict, kindStr.data()) != 0) { - throw Mars2GribException(std::string("Can not create dict kind ") + kindStr, Here()); - } - - if (kind == MultIOMDictKind::Options) { - ASSERT(multio_grib2_init_options(&dict) == 0); - } - dict_.reset(static_cast(dict)); -} - -void MultIOMDict::toYAML(const std::string& file) { - multio_grib2_dict_to_yaml(get(), "stdout"); -} - -void MultIOMDict::set(const char* key, const char* val) { - if (multio_grib2_dict_set(get(), key, val) != 0) { - throw Mars2GribException( - std::string("Can not set key ") + std::string(key) + std::string(" with value ") + std::string(val), - Here()); - } -} - -void MultIOMDict::set(const std::string& key, const std::string& val) { - set(key.c_str(), val.c_str()); -} - -void MultIOMDict::set_geometry(MultIOMDict&& geom) { - ASSERT(kind_ == MultIOMDictKind::Parametrization); - switch (geom.kind_) { - case MultIOMDictKind::HEALPix: - case MultIOMDictKind::ReducedGG: - case MultIOMDictKind::RegularLL: - case MultIOMDictKind::SH: - geom_ = std::make_unique(std::move(geom)); - ASSERT(multio_grib2_dict_set_geometry(get(), geom_->get()) == 0); - break; - default: - throw Mars2GribException("Passed dict is not a geometry dict", Here()); - } -} - - -void MultIOMDict::set(const std::string& key, std::int64_t val) { - if (multio_grib2_dict_set_int64(get(), key.c_str(), val) != 0) { - throw Mars2GribException(std::string("Can not set key ") + std::string(key) + std::string(" with int64 value ") - + std::to_string(val), - Here()); - } -} -void MultIOMDict::set(const std::string& key, bool val) { - set(key, (std::int64_t)val); -} -void MultIOMDict::set(const std::string& key, double val) { - if (multio_grib2_dict_set_double(get(), key.c_str(), val) != 0) { - throw Mars2GribException(std::string("Can not set key ") + std::string(key) + std::string(" with double value ") - + std::to_string(val), - Here()); - } -} -void MultIOMDict::set(const std::string& key, const std::int64_t* val, std::size_t len) { - if (multio_grib2_dict_set_int64_array(get(), key.c_str(), val, len) != 0) { - throw Mars2GribException(std::string("Can not set key ") + std::string(key) + std::string(" with int64 array"), - Here()); - } -} -void MultIOMDict::set(const std::string& key, const double* val, std::size_t len) { - if (multio_grib2_dict_set_double_array(get(), key.c_str(), val, len) != 0) { - throw Mars2GribException(std::string("Can not set key ") + std::string(key) + std::string(" with double array"), - Here()); - } -} -void MultIOMDict::set(const std::string& key, const std::vector& val) { - set(key, val.data(), val.size()); -} -void MultIOMDict::set(const std::string& key, const std::vector& val) { - set(key, val.data(), val.size()); -} - - -void* MultIOMDict::get() const { - return static_cast(dict_.get()); -} - -std::string MultIOMDict::toJSON() const { - char* d; - if (multio_grib2_dict_to_json(get(), &d) != 0) { - throw Mars2GribException("Can not export to json ", Here()); - } - return std::string(d); -} - - -} // namespace multio::mars2grib diff --git a/src/multio/mars2grib/multiom/MultIOMDict.h b/src/multio/mars2grib/multiom/MultIOMDict.h deleted file mode 100644 index d4fe47481..000000000 --- a/src/multio/mars2grib/multiom/MultIOMDict.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#pragma once - - -#include -#include - -#include "metkit/codes/api/CodesAPI.h" -#include "multio/datamod/core/EntryDumper.h" -#include "multio/datamod/types/TypeOfProcessedData.h" -#include "multio/util/VariantHelpers.h" -#include "multiom/encoders/api/dictionaries/c/api_dictionaries.h" - -namespace multio::mars2grib { -struct ForeignDictType; -} - -template <> -class std::default_delete { -public: - void operator()(multio::mars2grib::ForeignDictType* ptr) const { - void* p = static_cast(ptr); - ASSERT(multio_grib2_dict_destroy(&p) == 0); - } -}; - - -namespace multio::mars2grib { - - -enum class MultIOMDictKind : unsigned long -{ - Options, - MARS, - Parametrization, - // Geometry dicts - ReducedGG, - RegularLL, - SH, - HEALPix, -}; - -std::string multIOMDictKindString(MultIOMDictKind kind); - -struct MultIOMDict { - MultIOMDict(MultIOMDictKind kind); - ~MultIOMDict() = default; - - MultIOMDict(MultIOMDict&&) noexcept = default; - MultIOMDict& operator=(MultIOMDict&&) noexcept = default; - - void toYAML(const std::string& file = "stdout"); - - void set(const char* key, const char* val); - void set(const std::string& key, const std::string& val); - - // Typed setters - void set(const std::string& key, std::int64_t val); - void set(const std::string& key, double val); - void set(const std::string& key, bool val); - void set(const std::string& key, const std::int64_t* val, std::size_t len); - void set(const std::string& key, const double* val, std::size_t len); - void set(const std::string& key, const std::vector& val); - void set(const std::string& key, const std::vector& val); - - std::string toJSON() const; - - // Set geoemtry on parametrization - [[deprecated]] - void set_geometry(MultIOMDict&& geom); - - void* get() const; - - - MultIOMDictKind kind_; - std::unique_ptr dict_; - std::unique_ptr geom_; -}; - -} // namespace multio::mars2grib - - -namespace multio::datamod { - -template <> -struct DumpType { - static int64_t dump(TypeOfProcessedData d) { - return DumpType::dump(d); - }; -}; - -template <> -struct EntryDumper { - template < - typename EntryDef_, typename Entry_, - std::enable_if_t<(IsBaseEntryDefinition_v> && IsEntry_v>), bool> - = true> - static void set(const EntryDef_& entryDef, Entry_&& entry, mars2grib::MultIOMDict& md, const DumpOptions& opts) { - std::forward(entry).visit( // - eckit::Overloaded{[&](UnsetType v) {}, // Set nothing... - [&](auto&& v) { - TypeDumper::dumpToAndVisit( - std::forward(v), [&](auto&& vi) { - md.set(std::string(entryDef.key()), std::forward(vi)); - }); - }}); - } -}; - -} // namespace multio::datamod - diff --git a/src/multio/mars2grib/multiom/MultIOMRawEncoder.cc b/src/multio/mars2grib/multiom/MultIOMRawEncoder.cc deleted file mode 100644 index ed338eed1..000000000 --- a/src/multio/mars2grib/multiom/MultIOMRawEncoder.cc +++ /dev/null @@ -1,96 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation nor - * does it submit to any jurisdiction. - */ - -#include "multio/mars2grib/multiom/MultIOMRawEncoder.h" -#include "multio/mars2grib/Mars2GribException.h" - -#include "eckit/config/LocalConfiguration.h" - -#include "metkit/codes/api/CodesAPI.h" - -#include - -#include - -namespace std { -template <> -struct default_delete { - void operator()(codes_handle* h) { ::codes_handle_delete(h); } -}; -} // namespace std - -namespace multio::mars2grib { - - -MultIOMRawEncoder::MultIOMRawEncoder(const eckit::LocalConfiguration& conf) { - void* handle = NULL; - if (multio_grib2_raw_encoder_open( - nullptr, - static_cast(const_cast(static_cast(&conf))), - &handle) - != 0) { - std::ostringstream oss; - oss << "Can not create encoder from conf: " << conf; - throw Mars2GribException(oss.str(), Here()); - } - - encoder_.reset(static_cast(handle)); -} - -void* MultIOMRawEncoder::get() const { - return static_cast(encoder_.get()); -} - - -std::unique_ptr MultIOMRawEncoder::allocateAndPreset( - std::unique_ptr workSample, const MultIOMDict& mars, const MultIOMDict& par, - const MultIOMDict& geo) { - - std::unique_ptr h{reinterpret_cast(workSample->release())}; - if (multio_grib2_raw_encoder_prepare(encoder_.get(), mars.get(), par.get(), geo.get(), h.get()) != 0) { - throw Mars2GribException(std::string("Can not prepare grib sample")); - } - - h = std::unique_ptr(reinterpret_cast(codes_handle_clone(h.get()))); - if (multio_grib2_raw_encoder_allocate(encoder_.get(), mars.get(), par.get(), geo.get(), h.get()) != 0) { - throw Mars2GribException(std::string("Can not allocate grib sample")); - } - - h = std::unique_ptr(reinterpret_cast(codes_handle_clone(h.get()))); - if (multio_grib2_raw_encoder_preset(encoder_.get(), mars.get(), par.get(), geo.get(), h.get()) != 0) { - throw Mars2GribException(std::string("Can not preset grib sample")); - } - - const void* data; - size_t size; - codes_get_message(h.get(), &data, &size); - return metkit::codes::codesHandleFromMessageCopy( - metkit::codes::Span(reinterpret_cast(data), size)); -}; - -// Applies runtime changes on a prepared samel -// TODO pgeier: Should not take geometry - will be changed after C++ migration -std::unique_ptr MultIOMRawEncoder::runtime( - std::unique_ptr workSample, const MultIOMDict& mars, const MultIOMDict& par, - const MultIOMDict& geo) { - std::unique_ptr h{reinterpret_cast(workSample->release())}; - if (multio_grib2_raw_encoder_runtime(encoder_.get(), mars.get(), par.get(), geo.get(), h.get()) != 0) { - throw Mars2GribException(std::string("Can not set runtime data on grib sample")); - } - - const void* data; - size_t size; - codes_get_message(h.get(), &data, &size); - return metkit::codes::codesHandleFromMessageCopy( - metkit::codes::Span(reinterpret_cast(data), size)); -} - - -} // namespace multio::mars2grib diff --git a/src/multio/mars2grib/multiom/MultIOMRawEncoder.h b/src/multio/mars2grib/multiom/MultIOMRawEncoder.h deleted file mode 100644 index e84f32119..000000000 --- a/src/multio/mars2grib/multiom/MultIOMRawEncoder.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#pragma once - -#include "multio/config/ComponentConfiguration.h" -#include "multio/mars2grib/multiom/MultIOMDict.h" - -#include "eckit/config/LocalConfiguration.h" - -#include "metkit/codes/api/CodesAPI.h" - -#include - -#include "multiom/encoders/api/dictionaries/c/api_dictionaries.h" - -extern "C" { -int multio_grib2_raw_encoder_open(void* options, void* eckit_conf, void** handle); -int multio_grib2_raw_encoder_close(void** handle); -int multio_grib2_raw_encoder_prepare(void* handle, const void* mars_dict, const void* par_dict, const void* geom_dict, - void* grib_handle); -int multio_grib2_raw_encoder_allocate(void* handle, const void* mars_dict, const void* par_dict, const void* geom_dict, - void* grib_handle); -int multio_grib2_raw_encoder_preset(void* handle, const void* mars_dict, const void* par_dict, const void* geom_dict, - void* grib_handle); -int multio_grib2_raw_encoder_runtime(void* handle, const void* mars_dict, const void* par_dict, const void* geom_dict, - void* grib_handle); -// int multio_grib2_rules_print(void* handle, const char* output_file, int len); -// int multio_grib2_rules_size(void* handle, int64_t* num_rules, int64_t max_linear_size, int64_t* max_levels); -} - -namespace multio::mars2grib { -struct ForeignEncoderType; -} - -template <> -class std::default_delete { -public: - void operator()(multio::mars2grib::ForeignEncoderType* ptr) const { - void* p = static_cast(ptr); - ASSERT(multio_grib2_raw_encoder_close(&p) == 0); - } -}; - - -namespace multio::mars2grib { - - -// New encoder for caching -struct MultIOMRawEncoder { - MultIOMRawEncoder(const eckit::LocalConfiguration& conf); - ~MultIOMRawEncoder() = default; - - MultIOMRawEncoder(MultIOMRawEncoder&&) noexcept = default; - MultIOMRawEncoder& operator=(MultIOMRawEncoder&&) noexcept = default; - - // Calls prepare, allocate and preset on a sample - // TODO: Should not take parametrization - will be changed after C++ migration - std::unique_ptr extracted(const void*& data, size_t& size); - std::unique_ptr allocateAndPreset(std::unique_ptr, - const MultIOMDict& mars, const MultIOMDict& par, - const MultIOMDict& geo); - - // Applies runtime changes on a prepared samel - // TODO: Should not take geometry - will be changed after C++ migration - std::unique_ptr runtime(std::unique_ptr, - const MultIOMDict& mars, const MultIOMDict& par, - const MultIOMDict& geo); - - // std::unique_ptr encode(MultIOMDict& mars, MultIOMDict& par, const double* data, std::size_t len); - // std::unique_ptr encode(MultIOMDict& mars, MultIOMDict& par, const float* data, std::size_t len); - - void* get() const; - - std::unique_ptr encoder_; -}; - - -//--------------------------------------------------------------------------------------------------------------------- - - -} // namespace multio::mars2grib diff --git a/src/multio/mars2grib/rules/Rule.cc b/src/multio/mars2grib/rules/Rule.cc deleted file mode 100644 index 2d91ab73a..000000000 --- a/src/multio/mars2grib/rules/Rule.cc +++ /dev/null @@ -1,184 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#include "Rule.h" -#include "multio/util/Print.h" - -namespace multio::mars2grib::rules { - - -// Match and set -bool ExclusiveRuleList::operator()(const dm::FullMarsRecord& rec, SectionsConf& conf) const { - DynRule* appliedRule = nullptr; - for (const auto& rule : rules) { - if (rule->apply(rec, conf)) { - if (appliedRule != nullptr) { - std::ostringstream oss; - util::PrintStream ps(oss); - ps << "ExclusizeRuleList: Multiple rules apply although they should be exclusive." << std::endl; - ps << " first match: " << std::endl; - ; - { - util::IndentGuard g(ps); - ps << *appliedRule << std::endl; - } - ps << " second match: " << std::endl; - { - util::IndentGuard g(ps); - ps << *rule.get() << std::endl; - } - ps << " Keys: " << std::endl; - { - util::IndentGuard g(ps); - ps << rec << std::endl; - } - throw Mars2GribException(oss.str(), Here()); - } - appliedRule = rule.get(); - } - } - return (appliedRule != nullptr); -} - - -ExclusiveRuleList mergeRuleList(ExclusiveRuleList&& res) { - return std::move(res); -} - - -} // namespace multio::mars2grib::rules - -namespace multio::util { -void Print::print(PrintStream& ps, const mars2grib::rules::ExclusiveRuleList& r) { - constexpr int MAX_RULES = 0; - ps << "exclusiveRuleList(\"" << r.name << "\""; - ps.softBreak(); - bool first = true; - int i = 0; - for (const auto& ri : r.rules) { - if (i < MAX_RULES || i > ((int)r.rules.size() - MAX_RULES)) { - if (first) { - first = false; - ps << " "; - } - else { - ps << ", "; - } - { - IndentGuard g(ps); - ps << *ri.get(); - ps.softBreak(); - } - } - else if (i == MAX_RULES) { - ps << " ... " << (((int)r.rules.size()) - ((int)(MAX_RULES * 2))) << " more rules ..."; - ps.softBreak(); - } - ++i; - } - ps << ")"; -} -} // namespace multio::util - -namespace multio::mars2grib::rules { - - -// Match and set -bool ChainedRuleList::operator()(const dm::FullMarsRecord& rec, SectionsConf& conf) const { - bool first = true; - for (const auto& rule : rules) { - bool matched = rule->apply(rec, conf); - if (first) { - // First failed - nothing has been applied yet - if (!matched) { - return false; - } - first = false; - continue; - } - - if (!matched) { - std::ostringstream oss; - util::PrintStream ps(oss); - ps << "ChainedRuleList: Some previous rules matched but an intermediate rule failed: " << std::endl; - - int i = 0; - for (const auto& r : rules) { - if (&r == &rule) { - ps << " #" << i << " failed: " << std::endl; - { - util::IndentGuard g(ps); - ps << *r.get() << std::endl; - ; - } - break; - } - else { - ps << " #" << i << " matched: " << std::endl; - { - util::IndentGuard g(ps); - ps << *r.get() << std::endl; - ; - } - } - ++i; - } - ps << " Keys: " << std::endl; - { - util::IndentGuard g(ps); - util::print(ps, rec); - } - throw Mars2GribException(oss.str(), Here()); - } - } - - return true; -} - - -} // namespace multio::mars2grib::rules - - -namespace multio::util { - - -void Print::print(PrintStream& ps, const mars2grib::rules::ChainedRuleList& r) { - constexpr int MAX_RULES = 3; - ps << "chainedRuleList("; - ps.softBreak(); - bool first = true; - int i = 0; - for (const auto& ri : r.rules) { - if ((i < MAX_RULES) || (i > ((int)r.rules.size() - MAX_RULES))) { - if (first) { - first = false; - ps << " "; - } - else { - ps << ", "; - } - { - IndentGuard g(ps); - ps << *ri.get(); - ps.softBreak(); - } - } - else if (i == MAX_RULES) { - ps << " ... " << (((int)r.rules.size()) - ((int)(MAX_RULES * 2))) << " more rules ..."; - ps.softBreak(); - } - ++i; - } - ps << ")"; -} - - -} // namespace multio::util - diff --git a/src/multio/mars2grib/rules/Rule.h b/src/multio/mars2grib/rules/Rule.h deleted file mode 100644 index edde0114a..000000000 --- a/src/multio/mars2grib/rules/Rule.h +++ /dev/null @@ -1,204 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#pragma once - -#include "multio/mars2grib/EncoderConf.h" -#include "multio/mars2grib/Mars2GribException.h" -#include "multio/mars2grib/rules/Setter.h" - -#include "multio/datamod/MarsMiscGeo.h" - -#include "multio/util/Print.h" - -#include -#include -#include - - -namespace multio::mars2grib::rules { - -namespace dm = multio::datamod; - -// Rule with dynamic dispatch to be stored in containers massively -struct DynRule { - // Combines matching and setting. If matched on `keys`, the setter is applied and true is returned. - // If nothing matches only false is returned - virtual bool apply(const dm::FullMarsRecord& rec, SectionsConf&) const = 0; - virtual void print(util::PrintStream&) const = 0; - - virtual ~DynRule() = default; -}; -} // namespace multio::mars2grib::rules - -namespace multio::util { - -template <> -struct Print { - static void print(util::PrintStream& ps, const mars2grib::rules::DynRule& r) { r.print(ps); } -}; -} // namespace multio::util - -namespace multio::mars2grib::rules { - -template -struct DerivedRule : DynRule { - bool apply(const dm::FullMarsRecord& rec, SectionsConf& conf) const override { - return static_cast(*this)(rec, conf); - } - - void print(util::PrintStream& ps) const override { util::print(ps, static_cast(*this)); } -}; - -} // namespace multio::mars2grib::rules - -namespace multio::util {} - -namespace multio::mars2grib::rules { - - -// A Rule combining matcher and a setter -// Hence its operator() takes a keyset for matching, a encoder configuration to set keys, and it returns the result of -// the match. Nothing is set if the match fails. -template -struct Rule : DerivedRule> { - Rule(Matcher&& m, Setter&& s) : matcher{std::move(m)}, setter{std::move(s)} {} - Matcher matcher; - Setter setter; - - // Match and set - bool operator()(const dm::FullMarsRecord& rec, SectionsConf& conf) const { - if (matcher(rec)) { - setter(conf); - return true; - } - return false; - } -}; - -// Rule maker -template -auto rule(Matcher_&& matcher, Setter&& setter) { - return Rule>{std::forward(matcher), std::move(setter)}; -} - -// Rule maker with a NoOp (to just match) -template -auto rule(Matcher_&& matcher) { - return Rule>{std::forward(matcher), Setter([](SectionsConf&) {})}; -} - -// Rule with a matcher and mustiple setters (which get combined with `setAll`) -template = 2), bool> = true> -auto rule(Matcher_&& matcher, Setters_&&... setters) { - return rule(std::forward(matcher), setAll(std::forward(setters)...)); -} - -} // namespace multio::mars2grib::rules - -namespace multio::util { -template -struct Print> { - static void print(util::PrintStream& ps, const mars2grib::rules::Rule& r) { - ps << "rule("; - ps.softBreak(); - ps << " "; - { - IndentGuard g(ps); - ps << r.matcher; - ps.softBreak(); - } - ps << ")"; - } -}; - -} // namespace multio::util - -namespace multio::mars2grib::rules { - - -// An ExclusiveRuleList contains a list of rules from which only one is expected to match and be applied -// This concept is important to express combinations of orthogonal rules -struct ExclusiveRuleList : DerivedRule { - std::string name; - std::vector> rules; - - // Match and set - bool operator()(const dm::FullMarsRecord& rec, SectionsConf& conf) const; -}; - - -template -ExclusiveRuleList exclusiveRuleList(std::string name, Rule_&& rule, Rules_&&... rules) { - ExclusiveRuleList res; - res.name = name; - res.rules.emplace_back(std::make_unique>(std::forward(rule))); - (res.rules.emplace_back(std::make_unique>(std::forward(rules))), ...); - return res; -} - - -ExclusiveRuleList mergeRuleList(ExclusiveRuleList&& res); - -template -ExclusiveRuleList mergeRuleList(ExclusiveRuleList&& res, ExclusiveRuleList&& next, More&&... more) { - res.rules.insert(res.rules.end(), std::make_move_iterator(next.rules.begin()), - std::make_move_iterator(next.rules.end())); - - return mergeRuleList(std::move(res), std::forward(more)...); -} - -} // namespace multio::mars2grib::rules - -namespace multio::util { -template <> -struct Print { - static void print(util::PrintStream& ps, const mars2grib::rules::ExclusiveRuleList& r); -}; -} // namespace multio::util - -namespace multio::mars2grib::rules { - - -// Chains multiple rules on a struct matter. -// If the first rule applies, all others also have to apply - otherwise an exception is thrown to indicate that the -// key set is not definitely mapped. If the first rule does not apply, false is returned (and indicates that no -// modification happened) This is expected to be compbined with multiple ExclusiveRuleList to eventually form a -// combination of all partial rules. -struct ChainedRuleList : DerivedRule { - std::vector> rules; - - // Match and set - bool operator()(const dm::FullMarsRecord& rec, SectionsConf& conf) const; -}; - - -template -ChainedRuleList chainedRuleList(Rule_&& rule, Rules_&&... rules) { - ChainedRuleList res; - res.rules.emplace_back(std::make_unique>(std::forward(rule))); - (res.rules.emplace_back(std::make_unique>(std::forward(rules))), ...); - return res; -} - -} // namespace multio::mars2grib::rules - - -namespace multio::util { - - -template <> -struct Print { - static void print(util::PrintStream& ps, const mars2grib::rules::ChainedRuleList& r); -}; - - -} // namespace multio::util - diff --git a/src/multio/mars2grib/rules/Setter.h b/src/multio/mars2grib/rules/Setter.h deleted file mode 100644 index 30d3f1198..000000000 --- a/src/multio/mars2grib/rules/Setter.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - - -#pragma once - -#include "multio/mars2grib/EncoderConf.h" - - -namespace multio::mars2grib::rules { - -using Setter = std::function; - -struct SetAll { - std::vector setters; - - void operator()(SectionsConf& conf) const { - for (const auto& setter : setters) { - setter(conf); - } - } -}; - - -template -auto setAll(Setters&&... setters) { - SetAll res; - (res.setters.emplace_back(std::forward(setters)), ...); - return res; -} - -} // namespace multio::mars2grib::rules diff --git a/src/multio/mars2grib/sections/Level.cc b/src/multio/mars2grib/sections/Level.cc deleted file mode 100644 index 999dede01..000000000 --- a/src/multio/mars2grib/sections/Level.cc +++ /dev/null @@ -1,407 +0,0 @@ -#include "multio/mars2grib/sections/Level.h" -#include "multio/datamod/ContainerInterop.h" -#include "multio/datamod/GribKeys.h" -#include "multio/datamod/core/Compare.h" -#include "multio/datamod/types/LevType.h" -#include "multio/mars2grib/Mars2GribException.h" -#include "multio/mars2grib/sections/SectionSetter.h" - -#include "multio/util/Print.h" - -namespace multio::mars2grib::sections { - -std::optional levelForTypeOfLevel(const LevelConfigurator& levelConf, const dm::FullMarsRecord& mars, - const dm::MiscRecord& misc) { - auto throwLevelistMissing = [&]() { - std::ostringstream oss; - oss << "Missing levelist to extract level for typeOfLevel "; - util::print(oss, levelConf.type); - oss << ". Passed MARS keys: "; - util::print(oss, mars); - throw Mars2GribException(oss.str(), Here()); - }; - switch (levelConf.type.get()) { - // The 2m and 10m entries can be removed once the fortran encoder is removed - case dm::TypeOfLevel::HeightAboveSea: - case dm::TypeOfLevel::HeightAboveSeaAt10m: - case dm::TypeOfLevel::HeightAboveGroundAt2m: - case dm::TypeOfLevel::HeightAboveGroundAt10m: - case dm::TypeOfLevel::HeightAboveGround: { - const bool isSFC = mars.levtype.isSet() && mars.levtype.get() == dm::LevType::SFC; - - if (levelConf.fixedLevel.isSet()) { - return levelConf.fixedLevel.get(); - } - if (isSFC) { - if (!mars.levelist.isSet()) { - throwLevelistMissing(); - } - return mars.levelist.get(); - } - return {}; - } - case dm::TypeOfLevel::Snow: - case dm::TypeOfLevel::SnowLayer: - case dm::TypeOfLevel::SoilLayer: - case dm::TypeOfLevel::SeaIceLayer: - case dm::TypeOfLevel::IsobaricInPa: - case dm::TypeOfLevel::PotentialVorticity: - case dm::TypeOfLevel::Theta: - case dm::TypeOfLevel::Hybrid: { - if (!mars.levelist.isSet()) { - throwLevelistMissing(); - } - return mars.levelist.get(); - } - case dm::TypeOfLevel::IsobaricInhPa: { - if (!mars.levelist.isSet()) { - throwLevelistMissing(); - } - return mars.levelist.get() / 100; - } - default: - return {}; - } -} - - -dm::HorizontalGribKeys horizontalForTypeOfLevel(const LevelConfigurator& levelConf, const dm::FullMarsRecord& mars, - const dm::MiscRecord& misc) { - auto throwLevelistMissing = [&]() { - std::ostringstream oss; - oss << "Missing levelist to extract horizontal keys for typeOfLevel "; - util::print(oss, levelConf.type); - oss << ". Passed MARS keys: "; - util::print(oss, mars); - throw Mars2GribException(oss.str(), Here()); - }; - - auto handleHeightAbove = [&](std::int64_t typeOfFirstFixedSurface) { - dm::HorizontalGribKeys ret; - - const bool isSFC = mars.levtype.isSet() && mars.levtype.get() == dm::LevType::SFC; - ret.typeOfFirstFixedSurface.set(typeOfFirstFixedSurface); - ret.typeOfSecondFixedSurface.set(255); - - if (levelConf.fixedLevel.isSet()) { - ret.scaledValueOfFirstFixedSurface.set(levelConf.fixedLevel.get()); - ret.scaleFactorOfFirstFixedSurface.set(0); - } - if (isSFC) { - if (!mars.levelist.isSet()) { - throwLevelistMissing(); - } - ret.scaledValueOfFirstFixedSurface.set(mars.levelist.get()); - ret.scaleFactorOfFirstFixedSurface.set(0); - } - dm::applyRecordDefaults(ret); - dm::validateRecord(ret); - return ret; - }; - - - auto handle2SurfacesWithoutLevel - = [&](std::int64_t typeOfFirstFixedSurface, std::int64_t typeOfSecondFixedSurface) { - dm::HorizontalGribKeys ret; - ret.typeOfFirstFixedSurface.set(typeOfFirstFixedSurface); - ret.typeOfSecondFixedSurface.set(typeOfSecondFixedSurface); - dm::applyRecordDefaults(ret); - dm::validateRecord(ret); - return ret; - }; - - auto handle1SurfaceWithoutLevel = [&](std::int64_t typeOfFirstFixedSurface) { - dm::HorizontalGribKeys ret; - ret.typeOfFirstFixedSurface.set(typeOfFirstFixedSurface); - ret.typeOfSecondFixedSurface.set(255); - dm::applyRecordDefaults(ret); - dm::validateRecord(ret); - return ret; - }; - - auto handle1SurfaceWithLevel - = [&](std::int64_t typeOfFirstFixedSurface, std::optional pressureUnits = {}) { - dm::HorizontalGribKeys ret; - - if (pressureUnits) { - ret.pressureUnits.set(std::move(*pressureUnits)); - } - - ret.typeOfFirstFixedSurface.set(typeOfFirstFixedSurface); - ret.typeOfSecondFixedSurface.set(255); - - if (levelConf.fixedLevel.isSet()) { - ret.scaledValueOfFirstFixedSurface.set(levelConf.fixedLevel.get()); - } - else { - if (!mars.levelist.isSet()) { - throwLevelistMissing(); - } - ret.scaledValueOfFirstFixedSurface.set(mars.levelist.get()); - } - ret.scaleFactorOfFirstFixedSurface.set(0); - dm::applyRecordDefaults(ret); - dm::validateRecord(ret); - return ret; - }; - - auto handle2SurfaceLayerWithlevel = [&](std::int64_t typeOfSurface) { - dm::HorizontalGribKeys ret; - if (!mars.levelist.isSet()) { - throwLevelistMissing(); - } - ret.typeOfFirstFixedSurface.set(typeOfSurface); - ret.typeOfSecondFixedSurface.set(typeOfSurface); - ret.scaledValueOfFirstFixedSurface.set(mars.levelist.get() - 1); - ret.scaleFactorOfFirstFixedSurface.set(0); - ret.scaledValueOfSecondFixedSurface.set(mars.levelist.get()); - ret.scaleFactorOfSecondFixedSurface.set(0); - dm::applyRecordDefaults(ret); - dm::validateRecord(ret); - return ret; - }; - - switch (levelConf.type.get()) { - // The 2m and 10m entries can be removed once the fortran encoder is removed - case dm::TypeOfLevel::HeightAboveSea: - case dm::TypeOfLevel::HeightAboveSeaAt10m: - return handleHeightAbove(102); - case dm::TypeOfLevel::HeightAboveGroundAt2m: - case dm::TypeOfLevel::HeightAboveGroundAt10m: - case dm::TypeOfLevel::HeightAboveGround: - return handleHeightAbove(103); - case dm::TypeOfLevel::EntireLake: - return handle2SurfacesWithoutLevel(1, 162); - case dm::TypeOfLevel::EntireAtmosphere: - return handle2SurfacesWithoutLevel(1, 8); - case dm::TypeOfLevel::DepthBelowSeaLayer: - return handle2SurfacesWithoutLevel(160, 160); - case dm::TypeOfLevel::IceLayerOnWater: - return handle2SurfacesWithoutLevel(174, 176); - case dm::TypeOfLevel::Surface: - return handle1SurfaceWithoutLevel(1); - case dm::TypeOfLevel::IceTopOnWater: - return handle1SurfaceWithoutLevel(174); - case dm::TypeOfLevel::CloudBase: - return handle1SurfaceWithoutLevel(2); - case dm::TypeOfLevel::AbstractMultipleLevels: - case dm::TypeOfLevel::AbstractSingleLevel: - return handle1SurfaceWithoutLevel(191); - case dm::TypeOfLevel::Isothermal: - return handle1SurfaceWithoutLevel(20); - case dm::TypeOfLevel::LakeBottom: - return handle1SurfaceWithoutLevel(162); - case dm::TypeOfLevel::MeanSea: - return handle1SurfaceWithoutLevel(101); - case dm::TypeOfLevel::MixedLayerParcel: - return handle1SurfaceWithoutLevel(18); - case dm::TypeOfLevel::MostUnstableParcel: - return handle1SurfaceWithoutLevel(17); - case dm::TypeOfLevel::MixingLayer: - return handle1SurfaceWithoutLevel(166); - case dm::TypeOfLevel::NominalTop: - return handle1SurfaceWithoutLevel(8); - case dm::TypeOfLevel::Tropopause: - return handle1SurfaceWithoutLevel(7); - case dm::TypeOfLevel::Hybrid: - return handle1SurfaceWithLevel(105, "hPa"); - case dm::TypeOfLevel::PotentialVorticity: - return handle1SurfaceWithLevel(109); - case dm::TypeOfLevel::Theta: - return handle1SurfaceWithLevel(107); - case dm::TypeOfLevel::Snow: - return handle1SurfaceWithLevel(114); // Might be wrong... to be checked how level are set - case dm::TypeOfLevel::IsobaricInPa: { - return handle1SurfaceWithLevel(100, "pa"); - } - case dm::TypeOfLevel::IsobaricInhPa: { - return handle1SurfaceWithLevel(100, "hPa"); - } - case dm::TypeOfLevel::HighCloudLayer: { - dm::HorizontalGribKeys ret; - ret.typeOfFirstFixedSurface.set(100); - ret.typeOfSecondFixedSurface.set(8); - ret.scaledValueOfFirstFixedSurface.set(45000); - ret.scaleFactorOfFirstFixedSurface.set(0); - dm::applyRecordDefaults(ret); - dm::validateRecord(ret); - return ret; - } - case dm::TypeOfLevel::MediumCloudLayer: { - dm::HorizontalGribKeys ret; - ret.typeOfFirstFixedSurface.set(100); - ret.typeOfSecondFixedSurface.set(100); - ret.scaledValueOfFirstFixedSurface.set(80000); - ret.scaleFactorOfFirstFixedSurface.set(0); - ret.scaledValueOfSecondFixedSurface.set(45000); - ret.scaleFactorOfSecondFixedSurface.set(0); - dm::applyRecordDefaults(ret); - dm::validateRecord(ret); - return ret; - } - case dm::TypeOfLevel::LowCloudLayer: { - dm::HorizontalGribKeys ret; - ret.typeOfFirstFixedSurface.set(1); - ret.typeOfSecondFixedSurface.set(100); - ret.scaledValueOfSecondFixedSurface.set(80000); - ret.scaleFactorOfSecondFixedSurface.set(0); - dm::applyRecordDefaults(ret); - dm::validateRecord(ret); - return ret; - } - case dm::TypeOfLevel::SeaIceLayer: { - return handle2SurfaceLayerWithlevel(152); - } - case dm::TypeOfLevel::SnowLayer: { - return handle2SurfaceLayerWithlevel(114); - } - case dm::TypeOfLevel::SoilLayer: { - return handle2SurfaceLayerWithlevel(151); - } - default: - return {}; - } -} - -std::optional verticalForTypeOfLevel(const LevelConfigurator& levelConf, - const dm::FullMarsRecord& mars, const dm::MiscRecord& misc) { - switch (levelConf.type.get()) { - case dm::TypeOfLevel::Hybrid: - case dm::TypeOfLevel::Snow: { - if (mars.levtype.isSet() && mars.levtype.get() == dm::LevType::ML) { - dm::VerticalGribKeys ret; - ASSERT(misc.pv.holdsReference()); - - if (!misc.pv.isSet()) { - std::ostringstream oss; - oss << "Missing key " << dm::Pv.keyInfo() << " to set vertical information for typeOfLevel "; - util::print(oss, levelConf.type); - oss << ". Mars keys: "; - util::print(oss, mars); - throw Mars2GribException(oss.str(), Here()); - }; - - ret.pv.setRef(misc.pv.get()); - ASSERT(ret.pv.holdsReference()); - dm::applyRecordDefaults(ret); - dm::validateRecord(ret); - return ret; - } - return {}; - } - default: - return {}; - } -}; - -DynSectionSetter::Config LevelSetter::sectionInfo() const { - DynSectionSetter::Config ret; - ret.registerPrepare = false; - ret.registerAllocate = true; - ret.registerPreset = true; - ret.registerRuntime = true; - ret.registerCheck = true; - return ret; -}; - -void LevelSetter::allocate(metkit::codes::CodesHandle& h, const dm::FullMarsRecord& mars, const dm::MiscRecord& misc, - const dm::Geometry& geo) const { - // set type of level here.... - auto vert = verticalForTypeOfLevel(conf_, mars, misc); - if (vert) { - dm::dumpRecord(*vert, h); - } -} - -void LevelSetter::preset(metkit::codes::CodesHandle& h, const dm::FullMarsRecord& mars, const dm::MiscRecord& misc, - const dm::Geometry& geo) const { - setLevels(h, mars, misc, geo); -} - -void LevelSetter::runtime(metkit::codes::CodesHandle& h, const dm::FullMarsRecord& mars, const dm::MiscRecord& misc, - const dm::Geometry& geo) const { - // TODO this should be only relevant for ML fields (because we don't cache them on level...) - setLevels(h, mars, misc, geo); -} - -void LevelSetter::setLevels(metkit::codes::CodesHandle& h, const dm::FullMarsRecord& mars, const dm::MiscRecord& misc, - const dm::Geometry& geo) const { - auto optLevel = levelForTypeOfLevel(conf_, mars, misc); - // TODO make the LevelDef own the typeOfLevel after migration - dm::dumpEntry(dm::TypeOfLevelEntry, conf_.type, h); - if (optLevel) { - h.set("level", *optLevel); - } -} - -void LevelSetter::check(const metkit::codes::CodesHandle& h, const dm::FullMarsRecord& mars, const dm::MiscRecord& misc, - const dm::Geometry& geo) const { - auto inferedHoriz = horizontalForTypeOfLevel(conf_, mars, misc); - auto horiz = dm::readRecord(h); - if (inferedHoriz != horiz) { - std::ostringstream oss; - oss << "LevelSetter{"; - util::print(oss, conf_); - oss << "}::check- inferred and read horizontal keys are different: " << std::endl; - oss << "Expected: "; - util::print(oss, inferedHoriz); - oss << std::endl; - oss << "Read: "; - util::print(oss, horiz); - oss << std::endl; - oss << "Mars keys: "; - util::print(oss, mars); - oss << std::endl; - throw Mars2GribException(oss.str(), Here()); - } -} - -// void LevelSetter::collectKeyInfo(KeyInfoList& req, KeyInfoList& opt, const dm::FullMarsRecord& mars) const { -// addKeyInfo(req); - -// // Check if levelist is required -// switch (levelConf.type) { -// // The 2m and 10m entries can be removed once the fortran encoder is removed -// case dm::TypeOfLevel::HeightAboveSea: -// case dm::TypeOfLevel::HeightAboveSeaAt10m: -// case dm::TypeOfLevel::HeightAboveGroundAt2m: -// case dm::TypeOfLevel::HeightAboveGroundAt10m: -// case dm::TypeOfLevel::HeightAboveGround: { -// const bool isSFC = mars.levtype.isSet() && mars.levtype.get() == LevType::SFC; - -// if (levelConf.fixedLevel.isMissing() && isSFC) { -// addKeyInfo(req); -// } -// break; -// } -// case dm::TypeOfLevel::Snow: -// case dm::TypeOfLevel::SnowLayer: -// case dm::TypeOfLevel::SoilLayer: -// case dm::TypeOfLevel::SeaIceLayer: -// case dm::TypeOfLevel::IsobaricInPa: -// case dm::TypeOfLevel::PotentialVorticity: -// case dm::TypeOfLevel::Theta: -// case dm::TypeOfLevel::Hybrid: -// case dm::TypeOfLevel::IsobaricInhPa: { -// addKeyInfo(req); -// break; -// } -// default: -// break; -// } - -// // Check if vertical information is required -// switch (levelConf.type) { -// case dm::TypeOfLevel::Hybrid: -// case dm::TypeOfLevel::Snow: { -// if (mars.levtype.isSet() && mars.levtype.get() == LevType::ML) { -// addKeyInfo(req); -// } -// break; -// } -// default: -// break; -// } -// } - -}; // namespace multio::mars2grib::sections diff --git a/src/multio/mars2grib/sections/Level.h b/src/multio/mars2grib/sections/Level.h deleted file mode 100644 index a484469ea..000000000 --- a/src/multio/mars2grib/sections/Level.h +++ /dev/null @@ -1,79 +0,0 @@ -#pragma once - -#include "multio/datamod/GribKeys.h" -#include "multio/datamod/MarsMiscGeo.h" - -#include "multio/datamod/core/EntryDef.h" -#include "multio/mars2grib/sections/SectionSetter.h" - -// Level config -namespace multio::mars2grib::sections { - -namespace dm = multio::datamod; - -using LEVELIST_t = dm::EntryValueType_t; - -constexpr auto LevelType = dm::EntryDef{"type"}.withAccessor([](auto&& v) { return &v.type; }); -constexpr auto FixedLevel = dm::EntryDef{"fixed-level"} // - .tagOptional() // - .withAccessor([](auto&& v) { return &v.fixedLevel; }); - -struct LevelConfigurator { - dm::EntryType_t type; - dm::EntryType_t fixedLevel; - - static constexpr std::string_view record_name_ = "level-configurator"; - static constexpr auto record_entries_ = std::make_tuple(LevelType, FixedLevel); -}; - - -// Determines the level and whether a level has to be set for a typeOfLevel -std::optional levelForTypeOfLevel(const LevelConfigurator&, const dm::FullMarsRecord&, - const dm::MiscRecord&); - -// Determines the level and whether a level has to be set for a typeOfLevel -dm::HorizontalGribKeys horizontalForTypeOfLevel(const LevelConfigurator&, const dm::FullMarsRecord&, - const dm::MiscRecord&); - -std::optional verticalForTypeOfLevel(const LevelConfigurator&, const dm::FullMarsRecord&, - const dm::MiscRecord&); - -class LevelSetter : public DynSectionSetter { -public: - DynSectionSetter::Config sectionInfo() const override; - - // Allocate is setting vertical - void allocate(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const override; - // Calls set level - void preset(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const override; - - // Calls set level - void runtime(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const override; - - void setLevels(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, const dm::Geometry&) const; - - void check(const metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const override; - - // void collectKeyInfo(KeyInfoList& required, KeyInfoList& optional, const dm::FullMarsRecord&) const override; - - - LevelSetter(const LevelConfigurator& conf) : conf_{conf} {} - virtual ~LevelSetter() = default; - -private: - LevelConfigurator conf_; -}; - - -} // namespace multio::mars2grib::sections - - -namespace multio::util { -template <> -struct Print : multio::datamod::PrintRecord {}; - -} // namespace multio::util diff --git a/src/multio/mars2grib/sections/SectionSetter.cc b/src/multio/mars2grib/sections/SectionSetter.cc deleted file mode 100644 index 2563bd17b..000000000 --- a/src/multio/mars2grib/sections/SectionSetter.cc +++ /dev/null @@ -1,136 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - - -#include "multio/mars2grib/sections/SectionSetter.h" - - -namespace multio::mars2grib::sections { - - -//----------------------------------------------------------------------------- - - -void DynSectionSetter::prepare(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const {} -void DynSectionSetter::allocate(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const {} -void DynSectionSetter::preset(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const {} -void DynSectionSetter::runtime(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const {} -void DynSectionSetter::check(const metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const {} -// void DynSectionSetter::collectKeyInfo(KeyInfoList&, KeyInfoList&, const dm::FullMarsRecord&) const {} - - -void SectionCollector::add(std::unique_ptr sect) { - auto secRef = std::cref(*sections_.emplace_back(std::move(sect)).get()); - - auto config = secRef.get().sectionInfo(); - - if (config.registerPrepare) { - prepare_.push_back(secRef); - } - if (config.registerAllocate) { - allocate_.push_back(secRef); - } - if (config.registerPreset) { - preset_.push_back(secRef); - } - if (config.registerRuntime) { - runtime_.push_back(secRef); - } - if (config.registerCheck) { - check_.push_back(secRef); - } -} - -void SectionCollector::prepare(metkit::codes::CodesHandle& h, const dm::FullMarsRecord& mars, - const dm::MiscRecord& misc, const dm::Geometry& geo) const { - for (auto secRef : prepare_) { - secRef.get().prepare(h, mars, misc, geo); - } -} - -void SectionCollector::allocate(metkit::codes::CodesHandle& h, const dm::FullMarsRecord& mars, - const dm::MiscRecord& misc, const dm::Geometry& geo) const { - for (auto secRef : allocate_) { - secRef.get().allocate(h, mars, misc, geo); - } -} - -void SectionCollector::preset(metkit::codes::CodesHandle& h, const dm::FullMarsRecord& mars, const dm::MiscRecord& misc, - const dm::Geometry& geo) const { - for (auto secRef : preset_) { - secRef.get().preset(h, mars, misc, geo); - } -} - -void SectionCollector::runtime(metkit::codes::CodesHandle& h, const dm::FullMarsRecord& mars, - const dm::MiscRecord& misc, const dm::Geometry& geo) const { - for (auto secRef : runtime_) { - secRef.get().runtime(h, mars, misc, geo); - } -} - -void SectionCollector::check(const metkit::codes::CodesHandle& h, const dm::FullMarsRecord& mars, - const dm::MiscRecord& misc, const dm::Geometry& geo) const { - for (auto secRef : runtime_) { - secRef.get().check(h, mars, misc, geo); - } -} - -// void SectionCollector::collectKeyInfo(KeyInfoList& req, KeyInfoList& opt, const dm::FullMarsRecord& mars) const { -// for (auto secRef : runtime_) { -// secRef.get().collectKeyInfo(req, opt, mars); -// } -// } - - -// void SectionCollector::writeKeyInfo(std::ostream& os, const dm::FullMarsRecord& mars) const { -// KeyInfoList req; -// KeyInfoList opt; -// collectKeyInfo(req, opt, mars); - -// auto printKey = [&](const auto& dynKey) { -// os << " - key: " << dynKey.key() << std::endl; -// os << " scope: " << dynKey.initScope() << std::endl; -// auto descr = dynKey.description(); -// if (descr) { -// os << " description: " << *descr << std::endl; -// } -// os << std::endl; -// }; - -// auto printKeys = [&](const auto& l) { -// if (l.size() == 0) { -// os << "None"; -// } -// else { -// for (auto ref : l) { -// printKey(ref.get()); -// } -// } -// }; - -// os << "Required keys for this mars set: " << std::endl; -// printKeys(req); - -// os << "Optional keys for this mars set: " << std::endl; -// printKeys(opt); -// } - - -//----------------------------------------------------------------------------- - - -} // namespace multio::mars2grib::sections - diff --git a/src/multio/mars2grib/sections/SectionSetter.h b/src/multio/mars2grib/sections/SectionSetter.h deleted file mode 100644 index 05925f094..000000000 --- a/src/multio/mars2grib/sections/SectionSetter.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation - * nor does it submit to any jurisdiction. - */ - -#pragma once - -#include "multio/datamod/MarsMiscGeo.h" -#include "metkit/codes/api/CodesAPI.h" - -#include -#include -#include - - -// DRAFT - to be discussed if we really need that many setters that an organization like this one is necessary -// The encoder configuration actually already maps to different setters and their configuration. -// If they are described properly through enums, it may be easier to keep them all static -// and do an explicit table lookup via a switch case on enum - - -namespace multio::mars2grib::sections { - -namespace dm = multio::datamod; - -// using KeyInfoList = std::vector>; - -// template -// void addKeyInfo(KeyInfoList& l) { -// l.push_back(std::cref(static_cast(datamod::key()))); -// } - - -struct DynSectionSetter { - struct Config { - bool registerPrepare; - bool registerAllocate; - bool registerPreset; - bool registerRuntime; - bool registerCheck; - }; - - // Returns information about which methods are implemented and need to be called - virtual Config sectionInfo() const = 0; - - - // Default implementation is to do nothing - virtual void prepare(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const; - // Default implementation is to do nothing - virtual void allocate(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const; - // Default implementation is to do nothing - virtual void preset(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const; - // Default implementation is to do nothing - virtual void runtime(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const; - - - // Implement a check method that is throwing on inconsistencies - virtual void check(const metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const; - - // // Implement a check method that is adding dynamic key information to give feed back on requirements - // virtual void collectKeyInfo(KeyInfoList& required, KeyInfoList& optional, const dm::FullMarsRecord&) const; - - virtual ~DynSectionSetter() = default; -}; - - -class SectionCollector { -public: - // Registers a new section - void add(std::unique_ptr); - - void prepare(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const; - void allocate(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const; - void preset(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const; - void runtime(metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const; - - void check(const metkit::codes::CodesHandle&, const dm::FullMarsRecord&, const dm::MiscRecord&, - const dm::Geometry&) const; - - // void collectKeyInfo(KeyInfoList& required, KeyInfoList& optional, const dm::FullMarsRecord&) const; - - // void writeKeyInfo(std::ostream&, const dm::FullMarsRecord&) const; - -private: - // Storage of all sections - std::vector> sections_; - - // References to specific setters that perform operation in orderd - std::vector> prepare_; - std::vector> allocate_; - std::vector> preset_; - std::vector> runtime_; - std::vector> check_; -}; - - -} // namespace multio::mars2grib::sections - diff --git a/src/multio/mars2grib/sections/SectionTypes.cc b/src/multio/mars2grib/sections/SectionTypes.cc deleted file mode 100644 index b9aee9cd4..000000000 --- a/src/multio/mars2grib/sections/SectionTypes.cc +++ /dev/null @@ -1,58 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation nor - * does it submit to any jurisdiction. - */ - -#include "multio/mars2grib/sections/SectionTypes.h" -#include "multio/mars2grib/Mars2GribException.h" - -namespace multio::datamod { - -using namespace multio::mars2grib::sections; - -std::string DumpType::dump(TimeRangeType v) { - switch (v) { - case TimeRangeType::FixedTimeRange: - return "fixed-timerange"; - case TimeRangeType::SinceLastPostProcessingStep: - return "since-last-post-processing-step"; - case TimeRangeType::SinceBeginningOfForecast: - return "since-beginning-of-forecast"; - default: - throw multio::mars2grib::Mars2GribException( - "DumpType::dump: Unexpected value for TimeRangeType", Here()); - } -} - - -TimeRangeType ParseType::parse(const std::string& val) { - // May use a vector - static const std::vector> typesOfStat{ - {"fixed-timerange", TimeRangeType::FixedTimeRange}, - {"since-last-post-processing-step", TimeRangeType::SinceLastPostProcessingStep}, - {"since-beginning-of-forecast", TimeRangeType::SinceBeginningOfForecast}}; - - if (auto tos - = std::find_if(typesOfStat.begin(), typesOfStat.end(), [&](const auto& pair) { return val == pair.first; }); - tos != typesOfStat.end()) { - return tos->second; - } - throw multio::mars2grib::Mars2GribException( - std::string("ParseType::parse Unknown value for TimeRangeType: ") + val, Here()); -} - - -} // namespace multio::datamod - -namespace multio::mars2grib::sections { -std::ostream& operator<<(std::ostream& os, const TimeRangeType& t) { - os << datamod::TypeDumper::dump(t); - return os; -} -} // namespace multio::mars2grib::sections - diff --git a/src/multio/mars2grib/sections/SectionTypes.h b/src/multio/mars2grib/sections/SectionTypes.h deleted file mode 100644 index 10d366533..000000000 --- a/src/multio/mars2grib/sections/SectionTypes.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * (C) Copyright 2025- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation nor - * does it submit to any jurisdiction. - */ - -#pragma once - -#include -#include "multio/datamod/core/TypeParserDumper.h" - - -namespace multio::mars2grib::sections { - -//----------------------------------------------------------------------------- - - -// Internal enum only -enum class TimeRangeType : std::size_t -{ - FixedTimeRange, - SinceLastPostProcessingStep, - SinceBeginningOfForecast -}; - -std::ostream& operator<<(std::ostream&, const TimeRangeType&); - -} // namespace multio::mars2grib::sections - - -namespace multio::datamod { - -template <> -struct DumpType { - static std::string dump(mars2grib::sections::TimeRangeType); -}; - - -template <> -struct ParseType { - static inline mars2grib::sections::TimeRangeType parse(mars2grib::sections::TimeRangeType v) noexcept { return v; }; - static mars2grib::sections::TimeRangeType parse(const std::string& s); -}; - - -} // namespace multio::datamod - diff --git a/src/multio/mars2mars/CMakeLists.txt b/src/multio/mars2mars/CMakeLists.txt index 4ececb1a7..e6877b5d6 100644 --- a/src/multio/mars2mars/CMakeLists.txt +++ b/src/multio/mars2mars/CMakeLists.txt @@ -8,6 +8,8 @@ ecbuild_add_library( Mars2MarsException.h Rules.cc Rules.h + rules/Matcher.h + rules/ParamMatcher.h rules/Setter.h rules/Rule.h rules/Rule.cc diff --git a/src/multio/mars2mars/Rules.cc b/src/multio/mars2mars/Rules.cc index 2c410a05a..7d6d124af 100644 --- a/src/multio/mars2mars/Rules.cc +++ b/src/multio/mars2mars/Rules.cc @@ -1,7 +1,7 @@ #include "multio/datamod/MarsMiscGeo.h" -#include "multio/mars2grib/rules/Matcher.h" -#include "multio/mars2grib/rules/ParamMatcher.h" +#include "multio/mars2mars/rules/Matcher.h" +#include "multio/mars2mars/rules/ParamMatcher.h" #include "multio/mars2mars/Rules.h" #include "multio/mars2mars/rules/Rule.h" @@ -11,7 +11,7 @@ namespace multio::mars2mars { using namespace rules; -using namespace multio::mars2grib::matcher; +using namespace multio::mars2mars::matcher; //----------------------------------------------------------------------------- // SOL fixes diff --git a/src/multio/mars2grib/rules/Matcher.h b/src/multio/mars2mars/rules/Matcher.h similarity index 87% rename from src/multio/mars2grib/rules/Matcher.h rename to src/multio/mars2mars/rules/Matcher.h index 857af8cdd..6274bc1a7 100644 --- a/src/multio/mars2grib/rules/Matcher.h +++ b/src/multio/mars2mars/rules/Matcher.h @@ -19,7 +19,7 @@ #include -namespace multio::mars2grib::matcher { +namespace multio::mars2mars::matcher { namespace dm = multio::datamod; @@ -202,21 +202,21 @@ auto any(Matcher&& matcher, Matchers&&... matchers) { } -} // namespace multio::mars2grib::matcher +} // namespace multio::mars2mars::matcher namespace multio::util { template -struct Print> { - static void print(PrintStream& ps, const mars2grib::matcher::Range& r) { +struct Print> { + static void print(PrintStream& ps, const mars2mars::matcher::Range& r) { ps << "Range(" << r.first << ", " << r.last << ")"; } }; template -struct Print> { - static void print(PrintStream& ps, const mars2grib::matcher::Ranges& r) { +struct Print> { + static void print(PrintStream& ps, const mars2mars::matcher::Ranges& r) { ps << "Ranges("; bool first = true; for (const auto& ri : r.ranges) { @@ -238,8 +238,8 @@ struct Print> { }; template -struct Print> { - static void print(PrintStream& ps, const mars2grib::matcher::OneOf& r) { +struct Print> { + static void print(PrintStream& ps, const mars2mars::matcher::OneOf& r) { ps << "OneOf("; bool first = true; for (const auto& ri : r.values) { @@ -257,8 +257,8 @@ struct Print> { template -struct Print> { - static void print(PrintStream& ps, const mars2grib::matcher::NoneOf& r) { +struct Print> { + static void print(PrintStream& ps, const mars2mars::matcher::NoneOf& r) { ps << "NoneOf("; bool first = true; for (const auto& ri : r.values) { @@ -276,8 +276,8 @@ struct Print> { template -struct Print> { - static void print(PrintStream& ps, const mars2grib::matcher::Has& r) { +struct Print> { + static void print(PrintStream& ps, const mars2mars::matcher::Has& r) { // TODO(pgeier) pretty printing needs to be fixed once the records use PointerToMember accessor only // then the proper readable key can be retrieved by checkend which entry in `record_entries_.member == r.member` ps << "Has()"; @@ -285,42 +285,42 @@ struct Print> { }; template -struct Print> { - static void print(PrintStream& ps, const mars2grib::matcher::Missing& r) { ps << "Missing()"; } +struct Print> { + static void print(PrintStream& ps, const mars2mars::matcher::Missing& r) { ps << "Missing()"; } }; template -struct Print> { - static void print(PrintStream& ps, const mars2grib::matcher::GreaterThan& m) { +struct Print> { + static void print(PrintStream& ps, const mars2mars::matcher::GreaterThan& m) { ps << "GreaterThan(" << m.value << ")"; } }; template -struct Print> { - static void print(PrintStream& ps, const mars2grib::matcher::GreaterEqual& m) { +struct Print> { + static void print(PrintStream& ps, const mars2mars::matcher::GreaterEqual& m) { ps << "GreaterEqual(" << m.value << ")"; } }; template -struct Print> { - static void print(PrintStream& ps, const mars2grib::matcher::LessThan& m) { +struct Print> { + static void print(PrintStream& ps, const mars2mars::matcher::LessThan& m) { ps << "LessThan(" << m.value << ")"; } }; template -struct Print> { - static void print(PrintStream& ps, const mars2grib::matcher::LessEqual& m) { +struct Print> { + static void print(PrintStream& ps, const mars2mars::matcher::LessEqual& m) { ps << "LessEqual(" << m.value << ")"; } }; template -struct Print> { +struct Print> { template static void printMatcher(bool& first, PrintStream& ps, const M& m) { if (first) { @@ -336,7 +336,7 @@ struct Print> { ps.softBreak(); } } - static void print(PrintStream& ps, const mars2grib::matcher::All& a) { + static void print(PrintStream& ps, const mars2mars::matcher::All& a) { ps << "all("; ps.softBreak(); bool first = true; @@ -347,7 +347,7 @@ struct Print> { template -struct Print> { +struct Print> { template static void printMatcher(bool& first, PrintStream& ps, const M& m) { if (first) { @@ -363,7 +363,7 @@ struct Print> { ps.softBreak(); } } - static void print(PrintStream& ps, const mars2grib::matcher::Any& a) { + static void print(PrintStream& ps, const mars2mars::matcher::Any& a) { ps << "any("; ps.softBreak(); bool first = true; diff --git a/src/multio/mars2grib/rules/ParamMatcher.h b/src/multio/mars2mars/rules/ParamMatcher.h similarity index 94% rename from src/multio/mars2grib/rules/ParamMatcher.h rename to src/multio/mars2mars/rules/ParamMatcher.h index 6214559d5..2dda09bc4 100644 --- a/src/multio/mars2grib/rules/ParamMatcher.h +++ b/src/multio/mars2mars/rules/ParamMatcher.h @@ -11,11 +11,11 @@ #pragma once #include "multio/datamod/MarsMiscGeo.h" -#include "multio/mars2grib/rules/Matcher.h" +#include "multio/mars2mars/rules/Matcher.h" #include -namespace multio::mars2grib::matcher { +namespace multio::mars2mars::matcher { //----------------------------------------------------------------------------- // Param matchers @@ -67,5 +67,5 @@ ParamMatcher matchParams(Arg&& arg, Arg2&& arg2, More&&... more) { } -} // namespace multio::mars2grib::matcher +} // namespace multio::mars2mars::matcher diff --git a/src/multio/mars2mars/rules/Rule.h b/src/multio/mars2mars/rules/Rule.h index fd3eddd16..90eef3a31 100644 --- a/src/multio/mars2mars/rules/Rule.h +++ b/src/multio/mars2mars/rules/Rule.h @@ -10,7 +10,7 @@ #pragma once -#include "multio/mars2grib/rules/Matcher.h" +#include "multio/mars2mars/rules/Matcher.h" #include "multio/mars2mars/MappingResult.h" #include "multio/mars2mars/Mars2MarsException.h" #include "multio/mars2mars/rules/Setter.h" diff --git a/src/multio/tools/CMakeLists.txt b/src/multio/tools/CMakeLists.txt index c42938bd7..b7b1f2222 100644 --- a/src/multio/tools/CMakeLists.txt +++ b/src/multio/tools/CMakeLists.txt @@ -66,10 +66,6 @@ ecbuild_add_executable( TARGET multio-convert-trace-log endif() - - -if ( BUILD_MULTIOM ) - ecbuild_add_executable( TARGET @@ -86,15 +82,9 @@ ecbuild_add_executable( LIBS multio - multio-mars2grib multio-mars2mars - multiom atlas eckit - fckit metkit eccodes - eccodes_f90 ) - -endif() diff --git a/src/multio/tools/grib1-to-grib2.cc b/src/multio/tools/grib1-to-grib2.cc index 1e5ba50e8..8cada0df2 100644 --- a/src/multio/tools/grib1-to-grib2.cc +++ b/src/multio/tools/grib1-to-grib2.cc @@ -31,6 +31,8 @@ #include "metkit/codes/CodesContent.h" #include "metkit/codes/api/CodesAPI.h" #include "metkit/codes/api/CodesTypes.h" +#include "metkit/mars2grib/api/Mars2Grib.h" + #include "multio/LibMultio.h" #include "multio/datamod/AtlasGeo.h" #include "multio/datamod/core/Record.h" @@ -38,7 +40,6 @@ #include "multio/datamod/ContainerInterop.h" #include "multio/datamod/MarsMiscGeo.h" -#include "multio/mars2grib/api/RawAPI.h" #include "multio/mars2mars/Rules.h" #include "multio/util/Print.h" @@ -1011,7 +1012,7 @@ void Grib1ToGrib2::execute(const eckit::option::CmdArgs& args) { // optDict.set("print-whole-error-stack", std::to_string(verbosity_ > 1 ? 1 : 0)); // optDict.set("print-dictionaries", std::to_string(verbosity_ > 1 ? 1 : 0)); - mars2grib::Mars2GribRaw mars2grib{}; + metkit::mars2grib::Mars2Grib encoder{}; eckit::message::Message msg; while ((msg = reader.next())) { @@ -1135,9 +1136,14 @@ void Grib1ToGrib2::execute(const eckit::option::CmdArgs& args) { datamod::applyRecordDefaults(misc); datamod::validateRecord(misc); - std::unique_ptr preparedHandle = mars2grib.getHandle(mars, misc, geo); - preparedHandle->set("values", values); + // Convert mars/misc/geo to eckit::LocalConfiguration + const auto marsConfig = dm::dumpRecord(mars); + const auto miscConfig = dm::dumpRecord(misc); + const auto geomConfig + = std::visit([](const auto& geomRec) { return dm::dumpRecord(geomRec); }, geo); + // Call the GRIB2 encoder in metkit + auto preparedHandle = encoder.encode(marsConfig, miscConfig, geomConfig, values); // Apply more changes extract::postFixToolOnly(*inputHandle.get(), *preparedHandle.get()); diff --git a/src/multio/util/TypeToString.h b/src/multio/util/TypeToString.h index 9bbe259ac..dc8aeb120 100644 --- a/src/multio/util/TypeToString.h +++ b/src/multio/util/TypeToString.h @@ -52,6 +52,14 @@ struct TypeToString { std::string operator()() const { return "bool"; }; }; template <> +struct TypeToString { + std::string operator()() const { return "long"; }; +}; +template <> +struct TypeToString { + std::string operator()() const { return "long long"; }; +}; +template <> struct TypeToString { std::string operator()() const { return "double"; }; }; @@ -60,10 +68,6 @@ struct TypeToString { std::string operator()() const { return "float"; }; }; template <> -struct TypeToString { - std::string operator()() const { return "std::int64_t"; }; -}; -template <> struct TypeToString { std::string operator()() const { return "std::int32_t"; }; }; diff --git a/src/multiom/encoders/CMakeLists.txt b/src/multiom/encoders/CMakeLists.txt index ab0d147e1..328885730 100644 --- a/src/multiom/encoders/CMakeLists.txt +++ b/src/multiom/encoders/CMakeLists.txt @@ -10,38 +10,15 @@ set(OFFSET ${OFFSET}${DOFFSET}) # # Add Subdirectories add_subdirectory( dictionaries ) -add_subdirectory( grib2-encoder ) -add_subdirectory( api ) - - -# -# Main sources -set( MULTIOM_ENCODERS_MAIN_SOURCES -) # Collect source files in module2 set( MULTIOM_ENCODERS_SOURCES - ${MULTIOM_ENCODERS_MAIN_SOURCES} ${MULTIOM_DATA_STRUCTURES_SOURCES} - ${MULTIOM_ENCODERS_SOURCES} - ${MULTIOM_API_SOURCES} CACHE INTERNAL "List of all sources in encoders directory" ) -# -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODERS_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() - - # # Create the library ecbuild_add_library( @@ -49,9 +26,7 @@ ecbuild_add_library( multiom-encoders SOURCES - ${MULTIOM_DATA_STRUCTURES_SOURCES} ${MULTIOM_ENCODERS_SOURCES} - ${MULTIOM_API_SOURCES} DEFINITIONS ${OUTPUT_MANAGER_BUILD_FLAVOUR} @@ -70,4 +45,4 @@ ecbuild_add_library( # # Module directory set_target_properties( multiom-encoders PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/module/multiom ) -target_include_directories( multiom-encoders PUBLIC $ ) \ No newline at end of file +target_include_directories( multiom-encoders PUBLIC $ ) diff --git a/src/multiom/encoders/api/CMakeLists.txt b/src/multiom/encoders/api/CMakeLists.txt deleted file mode 100644 index d7b374c93..000000000 --- a/src/multiom/encoders/api/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -set(MULTIOM_API_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + api sources: ${MULTIOM_API_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - -# -# Add Subdirectories -add_subdirectory(common) -add_subdirectory(dictionaries) -add_subdirectory(encoders) - - -# Collect source files in module2 -set( MULTIOM_API_MAIN_SOURCES -) - -# Collect source files in module2 -set( MULTIOM_API_SOURCES - ${MULTIOM_API_MAIN_SOURCES} - ${MULTIOM_API_COMMON_SOURCES} - ${MULTIOM_API_DICTIONARIES_SOURCES} - ${MULTIOM_API_ENCODERS_SOURCES} - CACHE INTERNAL "List of all sources in api directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_API_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/api/common/CMakeLists.txt b/src/multiom/encoders/api/common/CMakeLists.txt deleted file mode 100644 index 893ada4fd..000000000 --- a/src/multiom/encoders/api/common/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(MULTIOM_API_COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + api/common sources: ${MULTIOM_API_COMMON_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -set( MULTIOM_API_COMMON_MAIN_SOURCES - ${MULTIOM_API_COMMON_DIR}/api_f_c_wrapper_mod.F90 - ${MULTIOM_API_COMMON_DIR}/api_f_c_wrapper_c.cc - ${MULTIOM_API_COMMON_DIR}/api_general_utils_mod.F90 - ${MULTIOM_API_COMMON_DIR}/api_general_utils_c.cc -) - -# Collect source files in module2 -set( MULTIOM_API_COMMON_SOURCES - ${MULTIOM_API_COMMON_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in api/common directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_API_COMMON_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/api/common/api_f_c_wrapper_c.cc b/src/multiom/encoders/api/common/api_f_c_wrapper_c.cc deleted file mode 100644 index 9addacf89..000000000 --- a/src/multiom/encoders/api/common/api_f_c_wrapper_c.cc +++ /dev/null @@ -1,112 +0,0 @@ - -#include -#include -#include -#include -#include -#include -#include -#include "eccodes.h" - -typedef struct { - long long object_id; - size_t buf_size; - size_t obj_size; - size_t hash; - int8_t* bytes; -} f_c_wrapper; - -extern "C" { - -int c_allocate_bytes( void** mem, size_t size ){ - - *mem = (void*) malloc( size ); - if (*mem == NULL) { - return 1; - } - memset(*mem, 0, size); - return 0; -} - -int c_free_bytes( void** mem ){ - - // Check if the pointer is NULL - if (*mem == NULL) { - return 1; - } - - free( *mem ); - *mem = NULL; - - // Exit point on success - return 0; -} - -int c_allocate_wrapper( void** mem, size_t size ){ - - // Check if the pointer is NULL - if (*mem != NULL) { - return 1; - } - - // Compute the size of the buffer - size_t sz = sizeof(f_c_wrapper); - - // Compare the size with the requested size - if ( size != sz) { - printf("Error: requested size %zu does not match expected size %zu\n", size, sz); - return 1; - } - - // Allocate the memory - *mem = (void*) malloc( sz ); - if (*mem == NULL) { - return 1; - } - - // Initialize the object - f_c_wrapper* wrapper = (f_c_wrapper*)*mem; - wrapper->object_id = 0; - wrapper->buf_size = size; - wrapper->obj_size = 0; - wrapper->hash = 0; - wrapper->bytes = NULL; - - // Exit point on success - return 0; -} - -int c_free_wrapper( void** mem ){ - - // Check if the pointer is NULL - if (*mem == NULL) { - return 1; - } - - // Free the memory - free( *mem ); - - // Reset the pointer - *mem = NULL; - - // Exit point on success - return 0; -} - -int hash_int8_array(const int8_t* data, size_t len, size_t* hash ) { - - const uint32_t fnv_prime = 16777619u; // FNV prime - const uint32_t fnv_offset = 2166136261u; // FNV offset basis - uint32_t fnv_hash = fnv_offset; - for (size_t i = 0; i < len; ++i) { - fnv_hash ^= (uint32_t)(uint8_t)data[i]; // cast to uint8_t for consistency - fnv_hash *= fnv_prime; // FNV prime - } - *hash = (size_t)fnv_hash; // cast to size_t for compatibility - // MIVAL: code for debug interoperability on different compilers - // printf( "compute hash: %llu, %p, %llu\n", *hash, data, len ); - return 0; -} - - -} diff --git a/src/multiom/encoders/api/common/api_f_c_wrapper_mod.F90 b/src/multiom/encoders/api/common/api_f_c_wrapper_mod.F90 deleted file mode 100644 index 71306288d..000000000 --- a/src/multiom/encoders/api/common/api_f_c_wrapper_mod.F90 +++ /dev/null @@ -1,908 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'api_f_c_wrapper_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'API_F_C_WRAPPER_MOD' -MODULE API_F_C_WRAPPER_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - - !> Symbols imported from intrinsic modules. - USE ISO_C_BINDING, ONLY: C_INT8_T - USE ISO_C_BINDING, ONLY: C_PTR - USE ISO_C_BINDING, ONLY: C_LONG_LONG - USE ISO_C_BINDING, ONLY: C_SIZE_T - USE ISO_C_BINDING, ONLY: C_NULL_PTR - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -!> Interoperable type meant to be used as a container for fortran data -TYPE, BIND(C) :: F_C_WRAPPER_T - INTEGER(C_LONG_LONG) :: OBJECT_ID=0_C_LONG_LONG - INTEGER(C_SIZE_T) :: BUF_SIZE=0_C_LONG_LONG - INTEGER(C_SIZE_T) :: OBJ_SIZE=0_C_LONG_LONG - INTEGER(C_SIZE_T) :: HASH=0_C_LONG_LONG - TYPE(C_PTR) :: BYTES=C_NULL_PTR -END TYPE - -!> Dummy wrapper Used to compute size -TYPE(F_C_WRAPPER_T) :: DUMMY_WRAPPER - -!> Shared parameters -INTEGER(KIND=JPIB_K), PARAMETER :: F_C_GUARD_SIZE = 8_JPIB_K -INTEGER(KIND=C_INT8_T), PARAMETER, DIMENSION(F_C_GUARD_SIZE) :: F_C_FRONT_GUARD = [1,2,3,4,5,6,7,8] -INTEGER(KIND=C_INT8_T), PARAMETER, DIMENSION(F_C_GUARD_SIZE) :: F_C_BACK_GUARD = [8,7,6,5,4,3,2,1] - -!> Whitelist of public symbols -PUBLIC :: F_C_WRAPPER_T -PUBLIC :: F_C_ALLOCATE_WRAPPER -PUBLIC :: F_C_EXTRACT_WRAPPER -PUBLIC :: F_C_FREE_WRAPPER -PUBLIC :: F_C_GET_INFO_WRAPPER -PUBLIC :: F_C_INJECT_CHECKSUM_WRAPPER - -CONTAINS - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'F_C_ALLOCATE_WRAPPER' -PP_THREAD_SAFE FUNCTION F_C_ALLOCATE_WRAPPER( WRAPPER, BUFFER, OBJECT_ID, DIM, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE ISO_C_BINDING, ONLY: C_PTR - USE ISO_C_BINDING, ONLY: C_INT - USE ISO_C_BINDING, ONLY: C_INT8_T - USE ISO_C_BINDING, ONLY: C_LONG_LONG - USE ISO_C_BINDING, ONLY: C_SIZE_T - USE ISO_C_BINDING, ONLY: C_F_POINTER - USE ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:), INTENT(INOUT) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:), INTENT(INOUT) :: BUFFER - INTEGER(KIND=JPIB_K), INTENT(IN) :: OBJECT_ID - INTEGER(KIND=JPIB_K), INTENT(IN) :: DIM - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: LOC_BUFFER - INTEGER(KIND=C_SIZE_T) :: SZ - INTEGER(KIND=JPIB_K) :: LO - INTEGER(KIND=JPIB_K) :: HI - TYPE(C_PTR) :: MEMORY_WRAPPER - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ARRAY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_SIZE=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_WRAPPER_SIZE=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLA_C_ALLOCATE_WRAPPER=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLA_C_ALLOCATE_ARRAY=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ARRAY_NOT_ASSOCIATED=8_JPIB_K - - ! Local explicit interfaces - INTERFACE - FUNCTION C_ALLOCATE_WRAPPER(CPTR, SZ) RESULT(RET) BIND(C,NAME='c_allocate_wrapper') - USE ISO_C_BINDING, ONLY: C_PTR - USE ISO_C_BINDING, ONLY: C_INT - USE ISO_C_BINDING, ONLY: C_SIZE_T - IMPLICIT NONE - TYPE(C_PTR), INTENT(INOUT) :: CPTR - INTEGER(C_SIZE_T), VALUE, INTENT(IN) :: SZ - INTEGER(C_INT) :: RET - END FUNCTION C_ALLOCATE_WRAPPER - FUNCTION C_ALLOCATE_BYTES(CPTR, SZ) RESULT(RET) BIND(C,NAME='c_allocate_bytes') - USE ISO_C_BINDING, ONLY: C_PTR - USE ISO_C_BINDING, ONLY: C_INT - USE ISO_C_BINDING, ONLY: C_SIZE_T - IMPLICIT NONE - TYPE(C_PTR), INTENT(INOUT) :: CPTR - INTEGER(C_SIZE_T), VALUE, INTENT(IN) :: SZ - INTEGER(C_INT) :: RET - END FUNCTION C_ALLOCATE_BYTES - END INTERFACE - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(BUFFER), ERRFLAG_ARRAY_ALREADY_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM.LT.1, ERRFLAG_WRONG_SIZE ) - - ! Compute size of the wrapper - SZ = INT( STORAGE_SIZE(DUMMY_WRAPPER), KIND=C_SIZE_T ) - PP_DEBUG_CRITICAL_COND_THROW( SZ.LT.1_C_SIZE_T, ERRFLAG_WRONG_WRAPPER_SIZE ) - PP_DEBUG_CRITICAL_COND_THROW( MOD(SZ,8).NE.0, ERRFLAG_WRONG_WRAPPER_SIZE ) - SZ = SZ/8_C_SIZE_T - - ! Allocate wrapper (needs to be done using c routines because in this way it can be deallocated from c) - MEMORY_WRAPPER = C_NULL_PTR - PP_TRYCALL(ERRFLA_C_ALLOCATE_WRAPPER) C_ALLOCATE_WRAPPER( MEMORY_WRAPPER, SZ ) - - ! Get the fortran pointer to the c-object - CALL C_F_POINTER( MEMORY_WRAPPER, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Init wrapper - WRAPPER(1)%OBJECT_ID = 0_C_LONG_LONG - WRAPPER(1)%BUF_SIZE = 0_C_SIZE_T - WRAPPER(1)%OBJ_SIZE = 0_C_SIZE_T - WRAPPER(1)%HASH = 0_C_SIZE_T - WRAPPER(1)%BYTES = C_NULL_PTR - - ! Set object ID - WRAPPER(1)%OBJECT_ID = INT(OBJECT_ID, KIND=C_LONG_LONG) - - ! Set size of the array - WRAPPER(1)%OBJ_SIZE = INT(DIM, KIND=C_SIZE_T) - WRAPPER(1)%BUF_SIZE = INT(DIM, KIND=C_SIZE_T) + INT( 2*F_C_GUARD_SIZE, KIND=C_SIZE_T) - - ! Allocate the array - PP_TRYCALL(ERRFLA_C_ALLOCATE_ARRAY) C_ALLOCATE_BYTES( WRAPPER(1)%BYTES, WRAPPER(1)%BUF_SIZE ) - - ! Get the fortran pointer to the c-object - LOC_BUFFER => NULL() - CALL C_F_POINTER( WRAPPER(1)%BYTES, LOC_BUFFER, [WRAPPER(1)%BUF_SIZE] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(LOC_BUFFER), ERRFLAG_ARRAY_NOT_ASSOCIATED ) - - ! Initialize the array - LOC_BUFFER = 0_C_INT8_T - - ! Copy the front guard - LO = 1 - HI = F_C_GUARD_SIZE - LOC_BUFFER(LO:HI) = F_C_FRONT_GUARD(1:F_C_GUARD_SIZE) - - ! Copy the back guard - LO = WRAPPER(1)%BUF_SIZE - F_C_GUARD_SIZE + 1 - HI = WRAPPER(1)%BUF_SIZE - LOC_BUFFER(LO:HI) = F_C_BACK_GUARD(1:F_C_GUARD_SIZE) - - ! Extract the pointer tot he output array - LO = F_C_GUARD_SIZE + 1 - HI = WRAPPER(1)%BUF_SIZE - F_C_GUARD_SIZE - PP_DEBUG_CRITICAL_COND_THROW( DIM.NE.HI-LO+1, ERRFLAG_WRONG_SIZE ) - BUFFER(1:DIM) => LOC_BUFFER(LO:HI) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper already associated' ) - CASE (ERRFLAG_ARRAY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Array already associated' ) - CASE (ERRFLAG_WRONG_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_WRONG_WRAPPER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong wrapper size' ) - CASE (ERRFLA_C_ALLOCATE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'C allocate wrapper failed' ) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated after allocation' ) - CASE (ERRFLA_C_ALLOCATE_ARRAY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'C allocate array failed' ) - CASE (ERRFLAG_ARRAY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Array not associated after allocation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION F_C_ALLOCATE_WRAPPER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'F_C_EXTRACT_WRAPPER' -PP_THREAD_SAFE FUNCTION F_C_EXTRACT_WRAPPER( WRAPPER, BUFFER, DIM, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE ISO_C_BINDING, ONLY: C_PTR - USE ISO_C_BINDING, ONLY: C_LONG_LONG - USE ISO_C_BINDING, ONLY: C_ASSOCIATED - USE ISO_C_BINDING, ONLY: C_NULL_PTR - USE ISO_C_BINDING, ONLY: C_LOC - USE ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:), INTENT(IN) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:), INTENT(INOUT) :: BUFFER - INTEGER(KIND=JPIB_K), INTENT(OUT) :: DIM - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(C_PTR) :: MEMORY_WRAPPER - TYPE(C_PTR) :: TMP - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: LOC_BUFFER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: LOC_FRONT_GUARD - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: LOC_BACK_GUARD - INTEGER(KIND=JPIB_K) :: LO - INTEGER(KIND=JPIB_K) :: HI - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ARRAY_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_FRONT_GUARD=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRNG_BACK_GUARD=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_SIZE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPER(1)%BYTES), ERRFLAG_ARRAY_NOT_ASSOCIATED ) - -! Get the fortran pointer to the c-object - LOC_BUFFER => NULL() - CALL C_F_POINTER( WRAPPER(1)%BYTES, LOC_BUFFER, [WRAPPER(1)%BUF_SIZE] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(LOC_BUFFER), ERRFLAG_ARRAY_NOT_ASSOCIATED ) - - ! Copy the front guard - LOC_FRONT_GUARD => NULL() - LO = 1 - HI = F_C_GUARD_SIZE - LOC_FRONT_GUARD(LO:HI) => LOC_BUFFER(LO:HI) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALL(LOC_FRONT_GUARD.EQ.F_C_FRONT_GUARD), ERRFLAG_WRONG_FRONT_GUARD ) - - ! Copy the back guard - LOC_BACK_GUARD => NULL() - LO = WRAPPER(1)%BUF_SIZE - F_C_GUARD_SIZE + 1 - HI = WRAPPER(1)%BUF_SIZE - LOC_BACK_GUARD(LO:HI) => LOC_BUFFER(LO:HI) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALL(LOC_BACK_GUARD.EQ.F_C_BACK_GUARD), ERRFLAG_WRNG_BACK_GUARD ) - - ! Extract the pointer tot he output array - LO = F_C_GUARD_SIZE + 1 - HI = WRAPPER(1)%BUF_SIZE - F_C_GUARD_SIZE - DIM = WRAPPER(1)%OBJ_SIZE - PP_DEBUG_CRITICAL_COND_THROW( DIM.NE.HI-LO+1, ERRFLAG_WRONG_SIZE ) - BUFFER(1:DIM) => LOC_BUFFER(LO:HI) - LOC_BUFFER => NULL() - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - - CASE (ERRFLAG_ARRAY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Array not associated' ) - - CASE (ERRFLAG_WRONG_FRONT_GUARD) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong front guard' ) - - CASE (ERRFLAG_WRNG_BACK_GUARD) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong back guard' ) - - CASE (ERRFLAG_WRONG_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION F_C_EXTRACT_WRAPPER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'F_C_INJECT_CHECKSUM_WRAPPER' -PP_THREAD_SAFE FUNCTION F_C_INJECT_CHECKSUM_WRAPPER( WRAPPER, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE ISO_C_BINDING, ONLY: C_PTR - USE ISO_C_BINDING, ONLY: C_LONG_LONG - USE ISO_C_BINDING, ONLY: C_ASSOCIATED - USE ISO_C_BINDING, ONLY: C_NULL_PTR - USE ISO_C_BINDING, ONLY: C_LOC - USE ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:), INTENT(INOUT) :: WRAPPER - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(C_PTR) :: MEMORY_WRAPPER - TYPE(C_PTR) :: TMP - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: LOC_BUFFER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: LOC_FRONT_GUARD - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: LOC_BACK_GUARD - INTEGER(KIND=JPIB_K) :: LO - INTEGER(KIND=JPIB_K) :: HI - - ! Local explicit interfaces - INTERFACE - FUNCTION C_HASH_INT8_ARRAY(CPTR,LEN,HASH) RESULT(RET) BIND(C,NAME='hash_int8_array') - USE :: ISO_C_BINDING, ONLY: C_PTR - USE ISO_C_BINDING, ONLY: C_SIZE_T - USE :: ISO_C_BINDING, ONLY: C_INT - IMPLICIT NONE - TYPE(C_PTR), INTENT(IN) :: CPTR - INTEGER(C_SIZE_T), VALUE, INTENT(IN) :: LEN - TYPE(C_PTR), VALUE, INTENT(IN) :: HASH - INTEGER(C_INT) :: RET - END FUNCTION C_HASH_INT8_ARRAY - END INTERFACE - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ARRAY_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_COMPUTE_HASH=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPER(1)%BYTES), ERRFLAG_ARRAY_NOT_ASSOCIATED ) - - ! Get the fortran pointer to the c-object - PP_TRYCALL(ERRFLAG_COMPUTE_HASH) C_HASH_INT8_ARRAY( & -& WRAPPER(1)%BYTES, & -& WRAPPER(1)%BUF_SIZE, & -& C_LOC(WRAPPER(1)%HASH) ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - - CASE (ERRFLAG_ARRAY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Array not associated' ) - - CASE (ERRFLAG_COMPUTE_HASH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to compute hash' ) - - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION F_C_INJECT_CHECKSUM_WRAPPER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'F_C_FREE_WRAPPER' -PP_THREAD_SAFE FUNCTION F_C_FREE_WRAPPER( WRAPPER, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE ISO_C_BINDING, ONLY: C_PTR - USE ISO_C_BINDING, ONLY: C_LONG_LONG - USE ISO_C_BINDING, ONLY: C_SIZE_T - USE ISO_C_BINDING, ONLY: C_ASSOCIATED - USE ISO_C_BINDING, ONLY: C_NULL_PTR - USE ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:), INTENT(INOUT) :: WRAPPER - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(C_PTR) :: MEMORY_WRAPPER - TYPE(C_PTR) :: TMP - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ARRAY_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATE_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATE_BYTES=4_JPIB_K - - ! Local explicit interfaces - INTERFACE - FUNCTION C_FREE_BYTES(CPTR) RESULT(RET) BIND(C,NAME='c_free_bytes') - USE :: ISO_C_BINDING, ONLY: C_PTR - USE :: ISO_C_BINDING, ONLY: C_INT - IMPLICIT NONE - TYPE(C_PTR), INTENT(INOUT) :: CPTR - INTEGER(C_INT) :: RET - END FUNCTION C_FREE_BYTES - FUNCTION C_FREE_WRAPPER(CPTR) RESULT(RET) BIND(C,NAME='c_free_wrapper') - USE :: ISO_C_BINDING, ONLY: C_PTR - USE :: ISO_C_BINDING, ONLY: C_INT - IMPLICIT NONE - TYPE(C_PTR), INTENT(INOUT) :: CPTR - INTEGER(C_INT) :: RET - END FUNCTION C_FREE_WRAPPER - END INTERFACE - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPER(1)%BYTES), ERRFLAG_ARRAY_NOT_ASSOCIATED ) - - ! Free the array - PP_TRYCALL(ERRFLAG_DEALLOCATE_BYTES) C_FREE_BYTES( WRAPPER(1)%BYTES ) - - ! Free the wrapper fields - WRAPPER(1)%OBJECT_ID = 0_C_LONG_LONG - WRAPPER(1)%BUF_SIZE = 0_C_SIZE_T - WRAPPER(1)%OBJ_SIZE = 0_C_SIZE_T - WRAPPER(1)%HASH = 0_C_SIZE_T - WRAPPER(1)%BYTES = C_NULL_PTR - - ! Free the wrapper - TMP = C_LOC(WRAPPER) - PP_TRYCALL(ERRFLAG_DEALLOCATE_WRAPPER) C_FREE_WRAPPER( TMP ) - NULLIFY(WRAPPER) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - - CASE (ERRFLAG_ARRAY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Array not associated' ) - - CASE (ERRFLAG_DEALLOCATE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'C free wrapper failed' ) - - CASE (ERRFLAG_DEALLOCATE_BYTES) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'C free bytes failed' ) - - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION F_C_FREE_WRAPPER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'F_C_GET_INFO_WRAPPER' -PP_THREAD_SAFE FUNCTION F_C_GET_INFO_WRAPPER( WRAPPER, OBJ_ID, OBJ_SZ, BUF_SZ, HASH, HOOKS, VERIFY_CHECKSUM ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE ISO_C_BINDING, ONLY: C_SIZE_T - USE ISO_C_BINDING, ONLY: C_ASSOCIATED - USE ISO_C_BINDING, ONLY: C_F_POINTER - USE ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPER - INTEGER(KIND=JPIB_K), INTENT(OUT) :: OBJ_ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: OBJ_SZ - INTEGER(KIND=JPIB_K), INTENT(OUT) :: BUF_SZ - INTEGER(KIND=JPIB_K), INTENT(OUT) :: HASH - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - LOGICAL, OPTIONAL, INTENT(IN) :: VERIFY_CHECKSUM - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: LOC_WRAPPER - LOGICAL :: LOC_VERIFY_CHECKSUM - INTEGER(KIND=C_SIZE_T), TARGET :: CURR_CHECKSUM - - ! Local explicit interfaces - INTERFACE - FUNCTION C_HASH_INT8_ARRAY(CPTR,LEN,HASH) RESULT(RET) BIND(C,NAME='hash_int8_array') - USE :: ISO_C_BINDING, ONLY: C_PTR - USE ISO_C_BINDING, ONLY: C_SIZE_T - USE :: ISO_C_BINDING, ONLY: C_INT - IMPLICIT NONE - TYPE(C_PTR), INTENT(IN) :: CPTR - INTEGER(C_SIZE_T), VALUE, INTENT(IN) :: LEN - TYPE(C_PTR), VALUE, INTENT(IN) :: HASH - INTEGER(C_INT) :: RET - END FUNCTION C_HASH_INT8_ARRAY - END INTERFACE - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_COMPUTE_CHECKSUM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CHECKSUM=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Optional arguments - IF ( PRESENT(VERIFY_CHECKSUM) ) THEN - LOC_VERIFY_CHECKSUM = VERIFY_CHECKSUM - ELSE - LOC_VERIFY_CHECKSUM = .FALSE. - ENDIF - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Init output variables - OBJ_ID = 0_JPIB_K - OBJ_SZ = 0_JPIB_K - BUF_SZ = 0_JPIB_K - HASH = 0_JPIB_K - - ! Extract the wrapper - LOC_WRAPPER => NULL() - CALL C_F_POINTER( WRAPPER, LOC_WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(LOC_WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Assign output variables - OBJ_ID = INT(LOC_WRAPPER(1)%OBJECT_ID, KIND=JPIB_K ) - OBJ_SZ = INT(LOC_WRAPPER(1)%OBJ_SIZE, KIND=JPIB_K ) - BUF_SZ = INT(LOC_WRAPPER(1)%BUF_SIZE, KIND=JPIB_K ) - HASH = INT(LOC_WRAPPER(1)%HASH, KIND=JPIB_K ) - - IF ( LOC_VERIFY_CHECKSUM ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_COMPUTE_CHECKSUM) C_HASH_INT8_ARRAY( & -& LOC_WRAPPER(1)%BYTES, & -& LOC_WRAPPER(1)%BUF_SIZE, & -& C_LOC(CURR_CHECKSUM) ) - ! MIVAL: Code to debug interoperability issues - WRITE(*,*) 'Current checksum:', CURR_CHECKSUM, 'Expected checksum:', LOC_WRAPPER(1)%HASH - PP_DEBUG_CRITICAL_COND_THROW( LOC_WRAPPER(1)%HASH.NE.CURR_CHECKSUM, ERRFLAG_UNABLE_TO_COMPUTE_CHECKSUM ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - CHARACTER(LEN=32) :: REF_CHECKSUM - CHARACTER(LEN=32) :: CUR_CHECKSUM - INTEGER(KIND=JPIB_K) :: STAT - - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract the wrapper' ) - CASE (ERRFLAG_UNABLE_TO_COMPUTE_CHECKSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to compute checksum' ) - CASE (ERRFLAG_INVALID_CHECKSUM) - REF_CHECKSUM = REPEAT(' ', 32) - CUR_CHECKSUM = REPEAT(' ', 32) - WRITE(REF_CHECKSUM, '(I32)', IOSTAT=STAT) LOC_WRAPPER(1)%HASH - WRITE(CUR_CHECKSUM, '(I32)', IOSTAT=STAT) CURR_CHECKSUM - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid checksum' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Expected checksum: "'//TRIM(ADJUSTL(REF_CHECKSUM))//'"' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Computed checksum: "'//TRIM(ADJUSTL(CUR_CHECKSUM))//'"' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION F_C_GET_INFO_WRAPPER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -END MODULE API_F_C_WRAPPER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/common/api_general_utils_c.cc b/src/multiom/encoders/api/common/api_general_utils_c.cc deleted file mode 100644 index 762993896..000000000 --- a/src/multiom/encoders/api/common/api_general_utils_c.cc +++ /dev/null @@ -1,513 +0,0 @@ - -#include -#include -#include -#include -#include -#include -#include -#include "eccodes.h" - -extern "C" { - -int convert_int8_to_cstring(const void* intvar, char** cstring) { - if (intvar == NULL) { - return 1; - } - int8_t* val = (int8_t*)intvar; - const int max_length = snprintf(NULL, 0, "%" PRId8, *val) + 1; - *cstring = (char*)malloc(max_length * sizeof(char)); - if (*cstring == NULL) { - return 1; - } - memset(*cstring, 0, max_length * sizeof(char)); - sprintf(*cstring, "%" PRId8, *val); - return 0; -}; - -int convert_int16_to_cstring(const void* intvar, char** cstring) { - if (intvar == NULL) { - return 1; - } - int16_t* val = (int16_t*)intvar; - const int max_length = snprintf(NULL, 0, "%" PRId16, *val) + 1; - *cstring = (char*)malloc(max_length * sizeof(char)); - if (*cstring == NULL) { - return 1; - } - memset(*cstring, 0, max_length * sizeof(char)); - sprintf(*cstring, "%" PRId16, *val); - return 0; -}; - -int convert_int32_to_cstring(const void* intvar, char** cstring) { - if (intvar == NULL) { - return 1; - } - int32_t* val = (int32_t*)intvar; - const int max_length = snprintf(NULL, 0, "%" PRId32, *val) + 1; - *cstring = (char*)malloc(max_length * sizeof(char)); - if (*cstring == NULL) { - return 1; - } - memset(*cstring, 0, max_length * sizeof(char)); - sprintf(*cstring, "%" PRId32, *val); - return 0; -}; - -int convert_int64_to_cstring(const void* intvar, char** cstring) { - if (intvar == NULL) { - return 1; - } - int64_t* val = (int64_t*)intvar; - const int max_length = snprintf(NULL, 0, "%" PRId64, *val) + 1; - *cstring = (char*)malloc(max_length * sizeof(char)); - if (*cstring == NULL) { - return 1; - } - memset(*cstring, 0, max_length * sizeof(char)); - sprintf(*cstring, "%" PRId64, *val); - return 0; -}; - -int convert_real32_to_cstring(const void* floatvar, char** cstring) { - if (floatvar == NULL) { - return 1; - } - float* val = (float*)floatvar; - const int max_length = snprintf(NULL, 0, "%e", *val) + 1; - *cstring = (char*)malloc(max_length * sizeof(char)); - if (*cstring == NULL) { - return 1; - } - memset(*cstring, 0, max_length * sizeof(char)); - sprintf(*cstring, "%e", *val); - return 0; -}; - -int convert_real64_to_cstring(const void* floatvar, char** cstring) { - if (floatvar == NULL) { - return 1; - } - double* val = (double*)floatvar; - const int max_length = snprintf(NULL, 0, "%le", *val) + 1; - *cstring = (char*)malloc(max_length * sizeof(char)); - if (*cstring == NULL) { - return 1; - } - memset(*cstring, 0, max_length * sizeof(char)); - sprintf(*cstring, "%le", *val); - return 0; -}; - -int convert_fstring_to_cstring(const char* fstring, char** cstring) { - if (fstring == NULL) { - return 1; - } - int len = strlen(fstring); - *cstring = (char*)malloc(len + 1); - if (*cstring == NULL) { - return 1; - } - memset(*cstring, 0, len + 1); - strcpy(*cstring, fstring); - return 0; -}; - - -int convert_fstring_array_to_cstring_array(const char* values, int n, int m, char*** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0 || m < 0) { - return 1; - } - *str_array = (char**)malloc(n * sizeof(char**)); - if (*str_array == NULL) { - return 1; - } - int lo = 0; - int hi = 0; - int cnt = 0; - for (int i = 0; i < m; i++) { - if (values[i] == '\0') { - hi = i; - size_t sz = hi - lo + 1; - char* tmp = (char*)malloc(sz * sizeof(char)); - memset(tmp, 0, sz * sizeof(char)); - strncpy(tmp, &values[lo], sz); - (*str_array)[cnt] = tmp; - lo = i + 1; - cnt++; - } - } - return 0; -}; - - -int convert_int8_array_to_cstring_array(const void* values, int n, char*** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - *str_array = (char**)malloc(n * sizeof(char**)); - if (*str_array == NULL) { - return 1; - } - int8_t* val = (int8_t*)values; - for (int i = 0; i < n; i++) { - const int max_length = snprintf(NULL, 0, "%" PRId8, val[i]) + 1; - char* tmp = (char*)malloc(max_length * sizeof(char)); - memset(tmp, 0, max_length * sizeof(char)); - sprintf(tmp, "%" PRId8, val[i]); - (*str_array)[i] = tmp; - } - return 0; -}; - - -int convert_int16_array_to_cstring_array(const void* values, int n, char*** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - *str_array = (char**)malloc(n * sizeof(char**)); - if (*str_array == NULL) { - return 1; - } - int16_t* val = (int16_t*)values; - for (int i = 0; i < n; i++) { - const int max_length = snprintf(NULL, 0, "%" PRId16, val[i]) + 1; - char* tmp = (char*)malloc(max_length * sizeof(char)); - memset(tmp, 0, max_length * sizeof(char)); - sprintf(tmp, "%" PRId16, val[i]); - (*str_array)[i] = tmp; - } - return 0; -}; - - -int convert_int32_array_to_cstring_array(const void* values, int n, char*** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - *str_array = (char**)malloc(n * sizeof(char**)); - if (*str_array == NULL) { - return 1; - } - int32_t* val = (int32_t*)values; - for (int i = 0; i < n; i++) { - const int max_length = snprintf(NULL, 0, "%" PRId32, val[i]) + 1; - char* tmp = (char*)malloc(max_length * sizeof(char)); - memset(tmp, 0, max_length * sizeof(char)); - sprintf(tmp, "%" PRId32, val[i]); - (*str_array)[i] = tmp; - } - return 0; -}; - - -int convert_int64_array_to_cstring_array(const void* values, int n, char*** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - *str_array = (char**)malloc(n * sizeof(char**)); - if (*str_array == NULL) { - return 1; - } - int64_t* val = (int64_t*)values; - for (int i = 0; i < n; i++) { - const int max_length = snprintf(NULL, 0, "%" PRId64, val[i]) + 1; - char* tmp = (char*)malloc(max_length * sizeof(char)); - memset(tmp, 0, max_length * sizeof(char)); - sprintf(tmp, "%" PRId64, val[i]); - (*str_array)[i] = tmp; - } - return 0; -}; - -int convert_real32_array_to_cstring_array(const void* values, int n, char*** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - *str_array = (char**)malloc(n * sizeof(char**)); - if (*str_array == NULL) { - return 1; - } - float* val = (float*)values; - for (int i = 0; i < n; i++) { - const int max_length = snprintf(NULL, 0, "%e", val[i]) + 1; - char* tmp = (char*)malloc(max_length * sizeof(char)); - memset(tmp, 0, max_length * sizeof(char)); - sprintf(tmp, "%e", val[i]); - (*str_array)[i] = tmp; - } - return 0; -}; - -int convert_real64_array_to_cstring_array(const void* values, int n, char*** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - *str_array = (char**)malloc(n * sizeof(char**)); - if (*str_array == NULL) { - return 1; - } - double* val = (double*)values; - for (int i = 0; i < n; i++) { - const int max_length = snprintf(NULL, 0, "%le", val[i]) + 1; - char* tmp = (char*)malloc(max_length * sizeof(char)); - memset(tmp, 0, max_length * sizeof(char)); - sprintf(tmp, "%le", val[i]); - (*str_array)[i] = tmp; - } - return 0; -}; - - -int convert_int8_array_to_cstring(const void* values, int n, char** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - int len = 3; // "[ " and the null terminator - int8_t* val = (int8_t*)values; - for (int i = 0; i < n; i++) { - len += snprintf(NULL, 0, "%" PRId8, val[i]) + 2; // ", " and " ]" - } - *str_array = (char*)malloc(len * sizeof(char)); - if (*str_array == NULL) { - return 1; - } - memset(*str_array, 0, len * sizeof(char)); - char* ptr = *str_array; - ptr += sprintf(ptr, "[ "); - for (int i = 0; i < n; i++) { - ptr += sprintf(ptr, "%" PRId8, val[i]); - if (i < n - 1) { - ptr += sprintf(ptr, ", "); - } - else { - ptr += sprintf(ptr, " ]"); - } - } - return 0; -}; - - -int convert_int16_array_to_cstring(const void* values, int n, char** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - int len = 3; // "[ " and the null terminator - int16_t* val = (int16_t*)values; - for (int i = 0; i < n; i++) { - len += snprintf(NULL, 0, "%" PRId16, val[i]) + 2; // ", " and " ]" - } - *str_array = (char*)malloc(len * sizeof(char)); - if (*str_array == NULL) { - return 1; - } - memset(*str_array, 0, len * sizeof(char)); - char* ptr = *str_array; - ptr += sprintf(ptr, "[ "); - for (int i = 0; i < n; i++) { - ptr += sprintf(ptr, "%" PRId16, val[i]); - if (i < n - 1) { - ptr += sprintf(ptr, ", "); - } - else { - ptr += sprintf(ptr, " ]"); - } - } - return 0; -}; - - -int convert_int32_array_to_cstring(const void* values, int n, char** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - int len = 3; // "[ " and the null terminator - int32_t* val = (int32_t*)values; - for (int i = 0; i < n; i++) { - len += snprintf(NULL, 0, "%" PRId32, val[i]) + 2; // ", " and " ]" - } - *str_array = (char*)malloc(len * sizeof(char)); - if (*str_array == NULL) { - return 1; - } - memset(*str_array, 0, len * sizeof(char)); - char* ptr = *str_array; - ptr += sprintf(ptr, "[ "); - for (int i = 0; i < n; i++) { - ptr += sprintf(ptr, "%" PRId32, val[i]); - if (i < n - 1) { - ptr += sprintf(ptr, ", "); - } - else { - ptr += sprintf(ptr, " ]"); - } - } - return 0; -}; - - -int convert_int64_array_to_cstring(const void* values, int n, char** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - int len = 3; // "[ " and the null terminator - int64_t* val = (int64_t*)values; - for (int i = 0; i < n; i++) { - len += snprintf(NULL, 0, "%" PRId64, val[i]) + 2; // ", " and " ]" - } - *str_array = (char*)malloc(len * sizeof(char)); - if (*str_array == NULL) { - return 1; - } - memset(*str_array, 0, len * sizeof(char)); - char* ptr = *str_array; - ptr += sprintf(ptr, "[ "); - for (int i = 0; i < n; i++) { - ptr += sprintf(ptr, "%" PRId64, val[i]); - if (i < n - 1) { - ptr += sprintf(ptr, ", "); - } - else { - ptr += sprintf(ptr, " ]"); - } - } - return 0; -}; - - -int convert_real32_array_to_cstring(const void* values, int n, char** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - int len = 3; // "[ " and the null terminator - float* val = (float*)values; - for (int i = 0; i < n; i++) { - len += snprintf(NULL, 0, "%e", val[i]) + 2; // ", " and " ]" - } - *str_array = (char*)malloc(len * sizeof(char)); - if (*str_array == NULL) { - return 1; - } - memset(*str_array, 0, len * sizeof(char)); - char* ptr = *str_array; - ptr += sprintf(ptr, "[ "); - for (int i = 0; i < n; i++) { - ptr += sprintf(ptr, "%e", val[i]); - if (i < n - 1) { - ptr += sprintf(ptr, ", "); - } - else { - ptr += sprintf(ptr, " ]"); - } - } - return 0; -}; - - -int convert_real64_array_to_cstring(const void* values, int n, char** str_array) { - if (values == NULL) { - return 1; - } - if (n < 0) { - return 1; - } - int len = 3; // "[ " and the null terminator - double* val = (double*)values; - for (int i = 0; i < n; i++) { - len += snprintf(NULL, 0, "%le", val[i]) + 2; // ", " and " ]" - } - *str_array = (char*)malloc(len * sizeof(char)); - if (*str_array == NULL) { - return 1; - } - memset(*str_array, 0, len * sizeof(char)); - char* ptr = *str_array; - ptr += sprintf(ptr, "[ "); - for (int i = 0; i < n; i++) { - ptr += sprintf(ptr, "%le", val[i]); - if (i < n - 1) { - ptr += sprintf(ptr, ", "); - } - else { - ptr += sprintf(ptr, " ]"); - } - } - return 0; -}; - - -int allocate_iterator(void** iterator) { - *iterator = (int*)malloc(sizeof(int*)); - return 0; -} - - -int free_iterator(void* iterator) { - free(iterator); - return 0; -} - - -int set_codes_handle_c(const void* values, int len, void** location) { - if (values == NULL) { - return 1; - } - if (len < 0) { - return 1; - } - if (location == NULL) { - return 1; - } - *location = codes_handle_new_from_message(NULL, values, len); - if (*location == NULL) { - return 1; - } - return 0; -}; - -int copy_f_buf_to_c_buf_c(const char* val, int len, void** location) { - *location = malloc(len * sizeof(char)); - if (*location == NULL) { - return 1; - } - memcpy(*location, val, len); - return 0; -} -} diff --git a/src/multiom/encoders/api/common/api_general_utils_mod.F90 b/src/multiom/encoders/api/common/api_general_utils_mod.F90 deleted file mode 100644 index 3cae3eb74..000000000 --- a/src/multiom/encoders/api/common/api_general_utils_mod.F90 +++ /dev/null @@ -1,3003 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'api_general_utils_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'API_GENERAL_UTILS_MOD' -MODULE API_GENERAL_UTILS_MOD - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -!> Interface to the c utilities -INTERFACE CONVERT_TO_C_STRING - MODULE PROCEDURE CONVERT_F_STRING_SCALAR_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_INT8_SCALAR_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_INT16_SCALAR_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_INT32_SCALAR_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_INT64_SCALAR_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_REAL32_SCALAR_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_REAL64_SCALAR_TO_C_STRING_SCALAR - - MODULE PROCEDURE CONVERT_F_STRING_ARRAY_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_INT8_ARRAY_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_INT16_ARRAY_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_INT32_ARRAY_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_INT64_ARRAY_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_REAL32_ARRAY_TO_C_STRING_SCALAR - MODULE PROCEDURE CONVERT_REAL64_ARRAY_TO_C_STRING_SCALAR -END INTERFACE - -!> Whitelist of public symbols -PUBLIC :: CONVERT_TO_C_STRING -PUBLIC :: ALLOCATE_ITERATOR -PUBLIC :: DEALLOCATE_ITERATOR -PUBLIC :: GRIB_MESSAGE_TO_C_CODES_HANDLE -PUBLIC :: COPY_F_BUFFER_TO_C_BUFFER - -PUBLIC :: COPY_CPTR_TO_F_STRING -PUBLIC :: DEREFERENCE_DOUBLE_C_POINTER -PUBLIC :: COPY_FSTRING_TO_CCHAR_ARRAY -PUBLIC :: ASSOCIATE_CPTR_TO_CCHAR_ARRAY - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DEREFERENCE_DOUBLE_C_POINTER' -PP_THREAD_SAFE FUNCTION DEREFERENCE_DOUBLE_C_POINTER( CPTRPTR, LEN, CPTR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: CPTRPTR - INTEGER(KIND=JPIB_K), INTENT(IN) :: LEN - TYPE(C_PTR), DIMENSION(:), POINTER, INTENT(OUT) :: CPTR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_SIZE=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INPUT_POINTER_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_POINTER_NOT_ASSOCIATED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( LEN.LT.1, ERRFLAG_INVALID_SIZE ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(CPTRPTR), ERRFLAG_INPUT_POINTER_NOT_ASSOCIATED ) - - !> Dereference the double pointer - CPTR => NULL() - CALL C_F_POINTER( CPTRPTR, CPTR, [LEN] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(CPTR), ERRFLAG_POINTER_NOT_ASSOCIATED ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_INVALID_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid size (size must be greater than 0)' ) - CASE (ERRFLAG_INPUT_POINTER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Input pointer not associated' ) - CASE (ERRFLAG_POINTER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Pointer not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION DEREFERENCE_DOUBLE_C_POINTER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'COPY_CPTR_TO_F_STRING' -PP_THREAD_SAFE FUNCTION COPY_CPTR_TO_F_STRING( CPTR, STRLEN, FSTRING, HOOKS, TOLOWER ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(C_PTR), INTENT(IN) :: CPTR - INTEGER(KIND=C_SIZE_T), INTENT(IN) :: STRLEN - CHARACTER(LEN=*), INTENT(OUT) :: FSTRING - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - LOGICAL, OPTIONAL, INTENT(IN) :: TOLOWER - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local parameter - INTEGER(KIND=C_INT) :: I - INTEGER(KIND=C_INT) :: SZ - INTEGER(KIND=JPIB_K) :: ASCIIVALUE - LOGICAL :: LOC_TOLOWER - - !> Local variables - CHARACTER(LEN=1,KIND=C_CHAR), DIMENSION(:), POINTER :: STRING_C - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CSTRING_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_LENGTH=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_STRING=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TOO_LONG=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - SZ = LEN(FSTRING) - - ! Initialize optional arguments - IF (PRESENT(TOLOWER)) THEN - LOC_TOLOWER = TOLOWER - ELSE - LOC_TOLOWER = .FALSE. - ENDIF - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(CPTR), ERRFLAG_CSTRING_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( STRLEN.LT.0, ERRFLAG_INVALID_LENGTH ) - - !> Get the type of the encoder to be created - STRING_C => NULL() - CALL C_F_POINTER( CPTR, STRING_C, [STRLEN] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(STRING_C), ERRFLAG_UNABLE_TO_READ_STRING ) - PP_DEBUG_CRITICAL_COND_THROW( STRLEN.GT.SZ, ERRFLAG_STRING_TOO_LONG ) - - ! Copy the dictionary type to a fortran string - FSTRING = REPEAT(' ', SZ) - DO I = 1, STRLEN - IF ( LOC_TOLOWER ) THEN - ASCIIVALUE = ICHAR(STRING_C(I)) - IF (ASCIIVALUE .GE. ICHAR('A') .AND. ASCIIVALUE .LE. ICHAR('Z')) THEN - FSTRING(I:I) = CHAR(ASCIIVALUE - ICHAR('A') + ICHAR('a')) - ELSE - FSTRING(I:I) = STRING_C(I) - ENDIF - ELSE - FSTRING(I:I) = STRING_C(I) - ENDIF - ENDDO - - ! Restet local variables - NULLIFY(STRING_C) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_CSTRING_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'C string not associated' ) - CASE (ERRFLAG_INVALID_LENGTH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid length' ) - CASE (ERRFLAG_UNABLE_TO_READ_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to read string' ) - CASE (ERRFLAG_STRING_TOO_LONG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'String too long' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION COPY_CPTR_TO_F_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'ASSOCIATE_CPTR_TO_CCHAR_ARRAY' -PP_THREAD_SAFE FUNCTION ASSOCIATE_CPTR_TO_CCHAR_ARRAY( CREF, LEN, F_BUF, HOOKS, INITIALIZE ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, intrinsic :: ISO_C_BINDING, ONLY: C_PTR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, intrinsic :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, intrinsic :: ISO_C_BINDING, ONLY: C_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_NULL_CHAR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(C_PTR), INTENT(IN) :: CREF - INTEGER(KIND=JPIB_K), INTENT(IN) :: LEN - CHARACTER(LEN=1, KIND=C_CHAR), DIMENSION(:), POINTER, INTENT(INOUT) :: F_BUF - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - LOGICAL, OPTIONAL, INTENT(IN) :: INITIALIZE - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: I - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CPOINTER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_SIZE=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALREADY_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED_AFTER_MAP=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error rhandling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(CREF), ERRFLAG_CPOINTER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( LEN.LE.0_JPIB_K, ERRFLAG_WRONG_SIZE ) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(F_BUF), ERRFLAG_ALREADY_ASSOCIATED ) - - - ! Associate the pointer - CALL C_F_POINTER( CREF, F_BUF, [LEN] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(F_BUF), ERRFLAG_NOT_ASSOCIATED_AFTER_MAP ) - - ! Initialization - IF ( PRESENT(INITIALIZE) ) THEN - DO I = 1, SIZE(F_BUF) - F_BUF(I) = C_NULL_CHAR - ENDDO - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - CHARACTER(LEN=32) :: CTMP - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_CPOINTER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'C pointer is not associated' ) - - CASE (ERRFLAG_WRONG_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wron size of string and buffer' ) - CTMP = REPEAT( ' ', 32) - WRITE(CTMP,'(I32)') LEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Size of string: '//TRIM(ADJUSTL(CTMP)) ) - - CASE (ERRFLAG_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Fortran pointer is already associated' ) - - CASE (ERRFLAG_NOT_ASSOCIATED_AFTER_MAP) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Fortran pointer is not associated after map' ) - - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION ASSOCIATE_CPTR_TO_CCHAR_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'COPY_FSTRING_TO_CCHAR_ARRAY' -PP_THREAD_SAFE FUNCTION COPY_FSTRING_TO_CCHAR_ARRAY( F_STR, F_BUF, HOOKS, INITIALIZE ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, intrinsic :: ISO_C_BINDING, ONLY: C_PTR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_INT - USE, intrinsic :: ISO_C_BINDING, ONLY: C_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CHARACTER(LEN=*), INTENT(IN) :: F_STR - CHARACTER(LEN=1, KIND=C_CHAR), DIMENSION(:), TARGET, INTENT(INOUT) :: F_BUF - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - LOGICAL, OPTIONAL, INTENT(IN) :: INITIALIZE - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: I - CHARACTER(LEN=LEN(F_STR)) :: CTMP - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_SIZE=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error rhandling - PP_DEBUG_CRITICAL_COND_THROW( LEN_TRIM(ADJUSTL(F_STR))+1_JPIB_K .GT. SIZE(F_BUF), ERRFLAG_WRONG_SIZE ) - - ! Initialization - IF ( PRESENT(INITIALIZE) ) THEN - DO I = 1, SIZE(F_BUF) - F_BUF(I) = C_NULL_CHAR - ENDDO - ENDIF - - ! Populate - CTMP = REPEAT(' ', LEN(F_STR)) - CTMP = TRIM(ADJUSTL(F_STR)) - DO I = 1, LEN_TRIM(CTMP) - F_BUF(I) = CTMP(I:I) - ENDDO - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - CHARACTER(LEN=32) :: TMP - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_WRONG_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wron size of string and buffer' ) - TMP = REPEAT( ' ', 32) - WRITE(TMP,'(I32)') LEN_TRIM(ADJUSTL(F_STR))+1_JPIB_K - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Size of string: '//TRIM(ADJUSTL(TMP)) ) - TMP = REPEAT( ' ', 32) - WRITE(TMP,'(I32)') SIZE(F_BUF) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Size of buffer: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION COPY_FSTRING_TO_CCHAR_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_INT8_SCALAR_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_INT8_SCALAR_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - INTEGER(KIND=C_INT8_T), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - INTERFACE - FUNCTION CONVERT_INT8_TO_C_STRING_C( F_VAL, C_STR ) RESULT(RET) BIND(C, NAME='convert_int8_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_INT8_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_INT8_TO_C_STRING_C(C_LOC(VALUE), C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_INT8_SCALAR_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_INT8_ARRAY_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_INT8_ARRAY_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - INTEGER(KIND=C_INT8_T), DIMENSION(:), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=C_INT) :: N - - INTERFACE - FUNCTION CONVERT_INT8_ARRAY_TO_C_STRING_C( F_VAL, N, C_STR ) RESULT(RET) BIND(C, NAME='convert_int8_array_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: N - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_INT8_ARRAY_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - N = SIZE(VALUE) - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_INT8_ARRAY_TO_C_STRING_C(C_LOC(VALUE), N, C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_INT8_ARRAY_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_INT16_SCALAR_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_INT16_SCALAR_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT16_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - INTEGER(KIND=C_INT16_T), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - INTERFACE - FUNCTION CONVERT_INT16_TO_C_STRING_C( F_VAL, C_STR ) RESULT(RET) BIND(C, NAME='convert_int16_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_INT16_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_INT16_TO_C_STRING_C(C_LOC(VALUE), C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_INT16_SCALAR_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_INT16_ARRAY_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_INT16_ARRAY_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT16_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - INTEGER(KIND=C_INT16_T), DIMENSION(:), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=C_INT) :: N - - INTERFACE - FUNCTION CONVERT_INT16_ARRAY_TO_C_STRING_C( F_VAL, N, C_STR ) RESULT(RET) BIND(C, NAME='convert_int16_array_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT16_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: N - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_INT16_ARRAY_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - N = SIZE(VALUE) - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_INT16_ARRAY_TO_C_STRING_C(C_LOC(VALUE), N, C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_INT16_ARRAY_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_INT32_SCALAR_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_INT32_SCALAR_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT32_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - INTEGER(KIND=C_INT32_T), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - INTERFACE - FUNCTION CONVERT_INT32_TO_C_STRING_C( F_VAL, C_STR ) RESULT(RET) BIND(C, NAME='convert_int32_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_INT32_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_INT32_TO_C_STRING_C(C_LOC(VALUE), C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_INT32_SCALAR_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_INT32_ARRAY_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_INT32_ARRAY_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT32_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - INTEGER(KIND=C_INT32_T), DIMENSION(:), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=C_INT) :: N - - INTERFACE - FUNCTION CONVERT_INT32_ARRAY_TO_C_STRING_C( F_VAL, N, C_STR ) RESULT(RET) BIND(C, NAME='convert_int32_array_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT32_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: N - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_INT32_ARRAY_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - N = SIZE(VALUE) - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_INT32_ARRAY_TO_C_STRING_C(C_LOC(VALUE), N, C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_INT32_ARRAY_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_INT64_SCALAR_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_INT64_SCALAR_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT64_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - INTEGER(KIND=C_INT64_T), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - INTERFACE - FUNCTION CONVERT_INT64_TO_C_STRING_C( F_VAL, C_STR ) RESULT(RET) BIND(C, NAME='convert_int64_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_INT64_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_INT64_TO_C_STRING_C(C_LOC(VALUE), C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_INT64_SCALAR_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_INT64_ARRAY_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_INT64_ARRAY_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT64_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - INTEGER(KIND=C_INT64_T), DIMENSION(:), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=C_INT) :: N - - INTERFACE - FUNCTION CONVERT_INT64_ARRAY_TO_C_STRING_C( F_VAL, N, C_STR ) RESULT(RET) BIND(C, NAME='convert_int64_array_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT64_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: N - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_INT64_ARRAY_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - N = SIZE(VALUE) - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_INT64_ARRAY_TO_C_STRING_C(C_LOC(VALUE), N, C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_INT64_ARRAY_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_REAL32_SCALAR_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_REAL32_SCALAR_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_FLOAT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - REAL(KIND=C_FLOAT), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - INTERFACE - FUNCTION CONVERT_REAL32_TO_C_STRING_C( F_VAL, C_STR ) RESULT(RET) BIND(C, NAME='convert_real32_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_REAL32_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_REAL32_TO_C_STRING_C(C_LOC(VALUE), C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_REAL32_SCALAR_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_REAL32_ARRAY_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_REAL32_ARRAY_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_FLOAT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - REAL(KIND=C_FLOAT), DIMENSION(:), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=C_INT) :: N - - INTERFACE - FUNCTION CONVERT_REAL32_ARRAY_TO_C_STRING_C( F_VAL, N, C_STR ) RESULT(RET) BIND(C, NAME='convert_real32_array_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: N - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_REAL32_ARRAY_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - N = SIZE(VALUE) - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_REAL32_ARRAY_TO_C_STRING_C(C_LOC(VALUE), N, C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_REAL32_ARRAY_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_REAL64_SCALAR_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_REAL64_SCALAR_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_DOUBLE - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - REAL(KIND=C_DOUBLE), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - INTERFACE - FUNCTION CONVERT_REAL64_TO_C_STRING_C( F_VAL, C_STR ) RESULT(RET) BIND(C, NAME='convert_real64_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_REAL64_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_REAL64_TO_C_STRING_C(C_LOC(VALUE), C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_REAL64_SCALAR_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_REAL64_ARRAY_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_REAL64_ARRAY_TO_C_STRING_SCALAR( VALUE, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_DOUBLE - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - REAL(KIND=C_DOUBLE), DIMENSION(:), TARGET, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=C_INT) :: N - - INTERFACE - FUNCTION CONVERT_REAL64_ARRAY_TO_C_STRING_C( F_VAL, N, C_STR ) RESULT(RET) BIND(C, NAME='convert_real64_array_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_VAL - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: N - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_REAL64_ARRAY_TO_C_STRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Fill the C string - N = SIZE(VALUE) - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_REAL64_ARRAY_TO_C_STRING_C(C_LOC(VALUE), N, C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_REAL64_ARRAY_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_F_STRING_SCALAR_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_F_STRING_SCALAR_TO_C_STRING_SCALAR( F_STR, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, intrinsic :: ISO_C_BINDING, ONLY: C_PTR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CHARACTER(LEN=*), INTENT(IN) :: F_STR - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - INTEGER(KIND=JPIB_K) :: I - - !> Local variables - CHARACTER(LEN=1, KIND=C_CHAR), DIMENSION(LEN_TRIM(F_STR) + 1), TARGET :: TEMP - - INTERFACE - FUNCTION CONVERT_FSTRING_TO_CSTRING_C(F_STR, C_STR) RESULT(RET) BIND(C, NAME='convert_fstring_to_cstring') - USE, intrinsic :: ISO_C_BINDING, only : C_PTR - USE, intrinsic :: ISO_C_BINDING, only : C_INT - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_STR - TYPE(C_PTR), INTENT(OUT) :: C_STR - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_FSTRING_TO_CSTRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - DO I=1,LEN_TRIM(F_STR) - TEMP(I) = F_STR(I:I) - END DO - - TEMP(SIZE(TEMP)) = C_NULL_CHAR - - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) CONVERT_FSTRING_TO_CSTRING_C( C_LOC(TEMP), C_STR) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_F_STRING_SCALAR_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_F_STRING_ARRAY_TO_C_STRING_SCALAR' -PP_THREAD_SAFE FUNCTION CONVERT_F_STRING_ARRAY_TO_C_STRING_SCALAR( F_STR, C_STR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, intrinsic :: ISO_C_BINDING, ONLY: C_INT - USE, intrinsic :: ISO_C_BINDING, ONLY: C_PTR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, intrinsic :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CHARACTER(LEN=*), DIMENSION(:), INTENT(IN) :: F_STR - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: FOUND - INTEGER(KIND=C_INT), POINTER, DIMENSION(:) :: ARRAY_SIZE - INTEGER(KIND=C_INT) :: N - INTEGER(KIND=C_INT) :: M - INTEGER(KIND=JPIB_K) :: I - INTEGER(KIND=JPIB_K) :: J - INTEGER(KIND=JPIB_K) :: K - INTEGER(KIND=JPIB_K) :: SZ - INTEGER(KIND=JPIB_K) :: CNT - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=1, KIND=C_CHAR), DIMENSION(:), POINTER :: TEMP - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - INTERFACE - FUNCTION CONVERT_FSTRING_ARRAY_TO_CSTRING_C( VALUE, C_STRING ) RESULT(RET) BIND(C,NAME='convert_fstring_to_cstring') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: VALUE - TYPE(C_PTR), INTENT(OUT) :: C_STRING - INTEGER(KIND=C_INT) :: RET - END FUNCTION CONVERT_FSTRING_ARRAY_TO_CSTRING_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FILL_CSTR=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Count the characters - SZ = SIZE(F_STR) - DO I=1,SIZE(F_STR) - SZ = SZ + LEN_TRIM(ADJUSTL(F_STR(I))) - END DO - - ! Allocate the temporary array - ALLOCATE( TEMP(SZ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_UNABLE_TO_ALLOCATE ) - - ! Fill the temporary array - CNT = 0 - DO I = 1, SIZE(F_STR) - FOUND = .FALSE. - DO J = 1, LEN_TRIM(F_STR(I)) - IF ( F_STR(I)(J:J) .NE. ' ' ) THEN - FOUND = .TRUE. - ENDIF - IF ( FOUND ) THEN - CNT = CNT + 1_JPIB_K - TEMP(CNT) = F_STR(I)(J:J) - ENDIF - ENDDO - CNT = CNT + 1_JPIB_K - TEMP(J) = C_NULL_CHAR - ENDDO - - ! Fill the C string array - N = SIZE(F_STR) - M = SIZE(TEMP) - PP_TRYCALL(ERRFLAG_UNABLE_TO_FILL_CSTR) CONVERT_FSTRING_ARRAY_TO_CSTRING_C(C_LOC(TEMP), C_STR ) - - ! Deallocate the temporary array - DEALLOCATE( TEMP, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate the temporary array' ) - IF( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not deallocate the temporary array' ) - IF( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE (ERRFLAG_UNABLE_TO_FILL_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not fill the C string array' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_F_STRING_ARRAY_TO_C_STRING_SCALAR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CONVERT_F_STRING_ARRAY_TO_C_STRING_ARRAY' -PP_THREAD_SAFE FUNCTION CONVERT_F_STRING_ARRAY_TO_C_STRING_ARRAY( F_STR, C_STR, C_SZ, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, intrinsic :: ISO_C_BINDING, ONLY: C_INT - USE, intrinsic :: ISO_C_BINDING, ONLY: C_PTR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, intrinsic :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CHARACTER(LEN=*), DIMENSION(:), INTENT(IN) :: F_STR - TYPE(C_PTR), INTENT(OUT) :: C_STR - TYPE(C_PTR), VALUE, INTENT(IN) :: C_SZ - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: FOUND - INTEGER(KIND=C_INT), POINTER, DIMENSION(:) :: ARRAY_SIZE - INTEGER(KIND=C_INT) :: N - INTEGER(KIND=C_INT) :: M - INTEGER(KIND=JPIB_K) :: I - INTEGER(KIND=JPIB_K) :: J - INTEGER(KIND=JPIB_K) :: K - INTEGER(KIND=JPIB_K) :: SZ - INTEGER(KIND=JPIB_K) :: CNT - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=1, KIND=C_CHAR), DIMENSION(:), POINTER :: TEMP - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - INTERFACE - FUNCTION FILLCSTR_ARRAY_C( VALUE, N, M, C_STRING ) RESULT(RET) BIND(C,NAME='convert_fstring_array_to_cstring_array') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: VALUE - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: N - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: M - TYPE(C_PTR), INTENT(OUT) :: C_STRING - INTEGER(KIND=C_INT) :: RET - END FUNCTION FILLCSTR_ARRAY_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FILL_CSTR=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Count the characters - SZ = SIZE(F_STR) - DO I=1,SIZE(F_STR) - SZ = SZ + LEN_TRIM(ADJUSTL(F_STR(I))) - END DO - - ! Allocate the temporary array - ALLOCATE( TEMP(SZ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_UNABLE_TO_ALLOCATE ) - - ! Fill the temporary array - CNT = 0 - DO I = 1, SIZE(F_STR) - FOUND = .FALSE. - DO J = 1, LEN_TRIM(F_STR(I)) - IF ( F_STR(I)(J:J) .NE. ' ' ) THEN - FOUND = .TRUE. - ENDIF - IF ( FOUND ) THEN - CNT = CNT + 1_JPIB_K - TEMP(CNT) = F_STR(I)(J:J) - ENDIF - ENDDO - CNT = CNT + 1_JPIB_K - TEMP(J) = C_NULL_CHAR - ENDDO - - ! Fill the C string array - N = SIZE(F_STR) - M = SIZE(TEMP) - PP_TRYCALL(ERRFLAG_UNABLE_TO_FILL_CSTR) FILLCSTR_ARRAY_C(C_LOC(TEMP), N, M, C_STR) - - ! Deallocate the temporary array - DEALLOCATE( TEMP, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - - ! Fill the size - CALL C_F_POINTER( C_SZ, ARRAY_SIZE, [1] ) - ARRAY_SIZE(1) = N - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate the temporary array' ) - IF( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not deallocate the temporary array' ) - IF( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE (ERRFLAG_UNABLE_TO_FILL_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not fill the C string array' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION CONVERT_F_STRING_ARRAY_TO_C_STRING_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'ALLOCATE_ITERATOR' -PP_THREAD_SAFE FUNCTION ALLOCATE_ITERATOR( ITERATOR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, intrinsic :: ISO_C_BINDING, ONLY: C_INT - USE, intrinsic :: ISO_C_BINDING, ONLY: C_PTR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - INTEGER(KIND=C_INT), DIMENSION(:), POINTER, INTENT(INOUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - TYPE(C_PTR) :: C_ITERATOR - - INTERFACE - FUNCTION ALLOCATE_ITERATOR_C(C_IT) RESULT(RET) BIND(C, NAME='allocate_iterator') - USE, intrinsic :: ISO_C_BINDING, only : C_PTR - USE, intrinsic :: ISO_C_BINDING, only : C_INT - IMPLICIT NONE - TYPE(C_PTR), INTENT(INOUT) :: C_IT - INTEGER(KIND=C_INT) :: RET - END FUNCTION ALLOCATE_ITERATOR_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Allocate the iterator - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) ALLOCATE_ITERATOR_C( C_ITERATOR ) - - ! Associate the pointer - CALL C_F_POINTER( C_ITERATOR, ITERATOR, [1] ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate the iterator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION ALLOCATE_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DEALLOCATE_ITERATOR' -PP_THREAD_SAFE FUNCTION DEALLOCATE_ITERATOR( ITERATOR, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, intrinsic :: ISO_C_BINDING, ONLY: C_INT - USE, intrinsic :: ISO_C_BINDING, ONLY: C_PTR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - INTEGER(KIND=C_INT), DIMENSION(:), POINTER, INTENT(INOUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - INTERFACE - FUNCTION FREE_ITERATOR_C(C_IT) RESULT(RET) BIND(C, NAME='free_iterator') - USE, intrinsic :: ISO_C_BINDING, only : C_PTR - USE, intrinsic :: ISO_C_BINDING, only : C_INT - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: C_IT - INTEGER(KIND=C_INT) :: RET - END FUNCTION FREE_ITERATOR_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check iterator status - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(ITERATOR), ERRFLAG_NOT_ASSOCIATED ) - - ! Allocate the iterator - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) FREE_ITERATOR_C( C_LOC(ITERATOR) ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate the iterator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION DEALLOCATE_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB_MESSAGE_TO_C_CODES_HANDLE' -PP_THREAD_SAFE FUNCTION GRIB_MESSAGE_TO_C_CODES_HANDLE( F_BUF, C_CODES_HANDLE_LOC, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, intrinsic :: ISO_C_BINDING, ONLY: C_INT - USE, intrinsic :: ISO_C_BINDING, ONLY: C_PTR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, intrinsic :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CHARACTER(LEN=1), DIMENSION(:), TARGET, INTENT(IN) :: F_BUF - TYPE(C_PTR), INTENT(OUT) :: C_CODES_HANDLE_LOC - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=C_INT) :: N - INTEGER(KIND=JPIB_K) :: I - INTEGER(KIND=JPIB_K) :: SZ - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=1, KIND=C_CHAR), DIMENSION(:), POINTER :: TEMP - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - INTERFACE - FUNCTION SET_CODES_HANDLE( VALUE, N, C_CODES_HANDLE_LOC ) RESULT(RET) BIND(C,NAME='set_codes_handle_c') - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: VALUE - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: N - TYPE(C_PTR), INTENT(OUT) :: C_CODES_HANDLE_LOC - INTEGER(KIND=C_INT) :: RET - END FUNCTION SET_CODES_HANDLE - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_SET_CODES_HANDLE=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Count the characters - SZ = SIZE(F_BUF) - - ! Allocate the temporary array - ALLOCATE( TEMP(SZ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_UNABLE_TO_ALLOCATE ) - - ! Fill the temporary array - DO I = 1, SIZE(F_BUF) - TEMP(I) = F_BUF(I) - ENDDO - - ! Fill the C string array - N = SIZE(TEMP) - PP_TRYCALL(ERRFLAG_UNABLE_SET_CODES_HANDLE) SET_CODES_HANDLE(C_LOC(TEMP), N, C_CODES_HANDLE_LOC) - - ! Deallocate the temporary array - DEALLOCATE( TEMP, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate the temporary array' ) - IF( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not deallocate the temporary array' ) - IF( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE (ERRFLAG_UNABLE_SET_CODES_HANDLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not create an eccodes handle' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION GRIB_MESSAGE_TO_C_CODES_HANDLE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'COPY_F_BUFFER_TO_C_BUFFER' -PP_THREAD_SAFE FUNCTION COPY_F_BUFFER_TO_C_BUFFER( F_BUF, C_BUF, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, intrinsic :: ISO_C_BINDING, ONLY: C_PTR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_INT - USE, intrinsic :: ISO_C_BINDING, ONLY: C_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_NULL_CHAR - USE, intrinsic :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CHARACTER(LEN=1, KIND=C_CHAR), TARGET, DIMENSION(:), INTENT(IN) :: F_BUF - TYPE(C_PTR), INTENT(OUT) :: C_BUF - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - INTEGER(KIND=JPIB_K) :: I - - !> Local variables - INTEGER(KIND=C_INT) :: BUF_SIZE - - INTERFACE - FUNCTION COPY_F_BUFFER_TO_C_BUFFER_C(F_BUF, BUF_SIZE, C_BUF) RESULT(RET) BIND(C, NAME='copy_f_buf_to_c_buf_c') - USE, intrinsic :: ISO_C_BINDING, only : C_PTR - USE, intrinsic :: ISO_C_BINDING, only : C_INT - IMPLICIT NONE - TYPE(C_PTR), VALUE, INTENT(IN) :: F_BUF - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: BUF_SIZE - TYPE(C_PTR), INTENT(OUT) :: C_BUF - INTEGER(KIND=C_INT) :: RET - END FUNCTION COPY_F_BUFFER_TO_C_BUFFER_C - END INTERFACE - - !> Errorflags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOC_CSTR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - BUF_SIZE=INT(SIZE(F_BUF), KIND=C_INT) - - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOC_CSTR) COPY_F_BUFFER_TO_C_BUFFER_C( C_LOC(F_BUF), BUF_SIZE, C_BUF) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - - CASE (ERRFLAG_UNABLE_TO_ALLOC_CSTR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Can not allocate c string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION COPY_F_BUFFER_TO_C_BUFFER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -END MODULE API_GENERAL_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/CMakeLists.txt b/src/multiom/encoders/api/dictionaries/CMakeLists.txt deleted file mode 100644 index d6c059370..000000000 --- a/src/multiom/encoders/api/dictionaries/CMakeLists.txt +++ /dev/null @@ -1,47 +0,0 @@ -set(MULTIOM_API_DICTIONARIES_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -add_subdirectory( c ) - -# Enter in the module -message("${OFFSET} + api/dictionaries sources: ${MULTIOM_API_DICTIONARIES_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -set( MULTIOM_API_DICTIONARIES_MAIN_SOURCES - ${MULTIOM_API_DICTIONARIES_DIR}/c/api_dictionaries.cc - ${MULTIOM_API_DICTIONARIES_DIR}/dictionaries_api_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/options_dictionary_utils_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/options_dictionary_wrapper_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/mars_dictionary_utils_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/mars_dictionary_wrapper_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/par_dictionary_utils_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/par_dictionary_wrapper_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/reduced_gg_dictionary_utils_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/reduced_gg_dictionary_wrapper_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/regular_gg_dictionary_utils_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/regular_gg_dictionary_wrapper_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/regular_ll_dictionary_utils_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/regular_ll_dictionary_wrapper_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/healpix_dictionary_utils_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/healpix_dictionary_wrapper_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/sh_dictionary_utils_mod.F90 - ${MULTIOM_API_DICTIONARIES_DIR}/sh_dictionary_wrapper_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_API_DICTIONARIES_SOURCES - ${MULTIOM_API_DICTIONARIES_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in api/dictionaries directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_API_DICTIONARIES_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/api/dictionaries/c/CMakeLists.txt b/src/multiom/encoders/api/dictionaries/c/CMakeLists.txt deleted file mode 100644 index 0d2ede403..000000000 --- a/src/multiom/encoders/api/dictionaries/c/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -file(GLOB api_c_interface RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h") - - -# Loop through each entry and add it as a subdirectory if it's a directory -foreach(rule ${encoding_rules}) - message( " Copy ${rule} to the build directory" ) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${api_c_interface} - ${CMAKE_CURRENT_BINARY_DIR}/${api_c_interface} - COPYONLY) -endforeach() - - -message( " Copy api_dictionaries.h to the build directory" ) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/api_dictionaries.h - ${CMAKE_CURRENT_BINARY_DIR}/api_dictionaries.h - COPYONLY) - -install( - FILES api_dictionaries.h - DESTINATION ${MULTIO_OUTPUT_MANAGER_INCLUDE_DIR} - PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/src/multiom/encoders/api/dictionaries/c/api_dictionaries.cc b/src/multiom/encoders/api/dictionaries/c/api_dictionaries.cc deleted file mode 100644 index 108e69de0..000000000 --- a/src/multiom/encoders/api/dictionaries/c/api_dictionaries.cc +++ /dev/null @@ -1,76 +0,0 @@ -#include "api_dictionaries.h" -#include -#include - -extern "C" { - -// prototypes exposed by the fortran layer -int multio_grib2_dict_create_f(void** dict, char* dict_type, int len); -int multio_grib2_dict_set_f(void* dict, const char* key, int klen, const char* value, int vlen); -int multio_grib2_dict_set_int64_f(void* dict, const char* key, int klen, int64_t value ); -int multio_grib2_dict_set_real64_f(void* dict, const char* key, int klen, double value ); -int multio_grib2_dict_set_int64_array_f(void* dict, const char* key, int klen, const int64_t* value, int vlen); -int multio_grib2_dict_set_real64_array_f(void* dict, const char* key, int klen, const double* value, int vlen); -int multio_grib2_dict_get_f(void* dict, const char* key, int klen, char** value); -int multio_grib2_dict_has_f(void* dict, const char* key, int klen, int* has); -int multio_grib2_dict_to_yaml_f(void* dict, const char* fname, int len); -int multio_grib2_dict_to_json_f(void* dict, char** value); - - -int multio_grib2_dict_create(void** dict, char* dict_type) { - int len = std::strlen(dict_type); - return multio_grib2_dict_create_f(dict, dict_type, len); -}; - - -int multio_grib2_dict_set(void* dict, const char* key, const char* value) { - int klen = std::strlen(key); - int vlen = std::strlen(value); - return multio_grib2_dict_set_f(dict, key, klen, value, vlen); -}; - -int multio_grib2_dict_set_int64(void* dict, const char* key, int64_t value) { - int klen = std::strlen(key); - return multio_grib2_dict_set_int64_f(dict, key, klen, value); -}; - -int multio_grib2_dict_set_double(void* dict, const char* key, double value) { - int klen = std::strlen(key); - return multio_grib2_dict_set_real64_f(dict, key, klen, value); -}; - - -int multio_grib2_dict_set_int64_array(void* dict, const char* key, const int64_t* value, int vlen) { - int klen = std::strlen(key); - return multio_grib2_dict_set_int64_array_f(dict, key, klen, value, vlen); -}; - -int multio_grib2_dict_set_double_array(void* dict, const char* key, const double* value, int vlen) { - int klen = std::strlen(key); - return multio_grib2_dict_set_real64_array_f(dict, key, klen, value, vlen); -}; - - -int multio_grib2_dict_get(void* dict, const char* key, char** value) { - - int klen = std::strlen(key); - return multio_grib2_dict_get_f(dict, key, klen, value); -}; - - -int multio_grib2_dict_has(void* dict, const char* key, int* has) { - - int klen = std::strlen(key); - return multio_grib2_dict_has_f(dict, key, klen, has); -}; - - -int multio_grib2_dict_to_yaml(void* dict, const char* fname) { - int len = std::strlen(fname); - return multio_grib2_dict_to_yaml_f(dict, fname, len); -}; - -int multio_grib2_dict_to_json(void* dict, char** value) { - return multio_grib2_dict_to_json_f(dict, value); -}; -} diff --git a/src/multiom/encoders/api/dictionaries/c/api_dictionaries.h b/src/multiom/encoders/api/dictionaries/c/api_dictionaries.h deleted file mode 100644 index bc5bd27ab..000000000 --- a/src/multiom/encoders/api/dictionaries/c/api_dictionaries.h +++ /dev/null @@ -1,47 +0,0 @@ -#pragma once -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef unsigned long size_t; - -// multio_grib2 dictionary -int multio_grib2_dict_create(void** dict, char* dict_type); -int multio_grib2_dict_get(void* dict, const char* key, char** value); -int multio_grib2_dict_has(void* dict, const char* key, int* has); -int multio_grib2_dict_iterate(void* dict, void** iterator, char** key, char** value); -int multio_grib2_dict_destroy_iterator(void* dict, void** iterator); -int multio_grib2_dict_destroy(void** dict); - -// multio_grib2 dictionary string setter -// This setter is generic and converts to the underlying type -// Numbers can be but as string represention, e.g. "123" for an integer or "123.456" for a double -// Arrays can be passed as json arrays, e.g. [1,2,3] or [1.1, 2.2, 3.3] for integer & double arrays (e.g. pl or pv) -int multio_grib2_dict_set(void* dict, const char* key, const char* value); - -// multio_grib2 dictionary typed setters - -// These specialized calls won't perform any conversion and must match the underlying type for a key. -int multio_grib2_dict_set_int64(void* dict, const char* key, int64_t value); -int multio_grib2_dict_set_double(void* dict, const char* key, double value); -int multio_grib2_dict_set_int64_array(void* dict, const char* key, const int64_t* value, int vlen); -int multio_grib2_dict_set_double_array(void* dict, const char* key, const double* value, int vlen); - -int multio_grib2_dict_to_yaml(void* dict, const char* fname); -int multio_grib2_dict_to_json(void* dict, char** value); - -int multio_grib2_dict_set_geometry(void* dict, const void* geom_dict); - -// Initialize all the options to a relevant default -int multio_grib2_init_options(void** opt_dict); - -// options dict can be null, in this case default options can be applied -int multio_grib2_encoder_open(void* opt_dict, void** multio_grib2); -int multio_grib2_encoder_extract_metadata(void* multio_grib2, void* grib, void** mars_dict, void** par_dict); -int multio_grib2_encoder_close(void** multio_grib2); - - -#ifdef __cplusplus -} /* extern "C" */ -#endif diff --git a/src/multiom/encoders/api/dictionaries/dictionaries_api_mod.F90 b/src/multiom/encoders/api/dictionaries/dictionaries_api_mod.F90 deleted file mode 100644 index 2c1a06e6b..000000000 --- a/src/multiom/encoders/api/dictionaries/dictionaries_api_mod.F90 +++ /dev/null @@ -1,4208 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'dictionaries_api_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'DICTIONARIES_API_MOD' -MODULE DICTIONARIES_API_MOD - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - - -! Whitelist of public symbols (dictionaries management) -PUBLIC :: MULTIO_GRIB2_INIT_OPTIONS -PUBLIC :: MULTIO_GRIB2_DICT_CREATE -PUBLIC :: MULTIO_GRIB2_DICT_DESTROY -PUBLIC :: MULTIO_GRIB2_DICT_SET -PUBLIC :: MULTIO_GRIB2_DICT_SET_INT64 -PUBLIC :: MULTIO_GRIB2_DICT_SET_REAL64 -PUBLIC :: MULTIO_GRIB2_DICT_GET -PUBLIC :: MULTIO_GRIB2_DICT_HAS -PUBLIC :: MULTIO_GRIB2_DICT_ITERATE -PUBLIC :: MULTIO_GRIB2_DICT_TO_YAML - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_INIT_OPTIONS' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_INIT_OPTIONS( C_DICT_P ) & - BIND(C,NAME='multio_grib2_init_options') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - - ! Dictionary types - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: OPTIONS_DICTIONARY_INIT_DEFAULT - - ! Enumerators of the dictionaries - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_OPT_DICTIONARY - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: OPT_DICTIONARY_IDX_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: C_DICT_P - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE = 666_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - - !> Extract the dictionaries and set the key-value pair - SELECT CASE ( OBJ_ID ) - CASE ( OPT_DICTIONARY_IDX_E ) - - BLOCK - TYPE(API_OPTIONS_T), POINTER :: OPT_DICT - OPT_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_OPT_DICTIONARY( C_DICT_P, OPT_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT) OPTIONS_DICTIONARY_INIT_DEFAULT( OPT_DICT, HOOKS ) - OPT_DICT => NULL() - END BLOCK - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The dictionary pointer is not associated' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get info from the dictionary' ) - CASE (ERRFLAG_EXTRACT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract the dictionary' ) - CASE (ERRFLAG_UNABLE_TO_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to initialize the options dictionary with default values' ) - CASE (ERRFLAG_UNKNOWN_DICTIONARY_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dictionary type' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - - -END FUNCTION MULTIO_GRIB2_INIT_OPTIONS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_CREATE' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_CREATE( C_DICT_PP, C_DICT_TYPE_P, C_LEN_I ) & - BIND(C,NAME='multio_grib2_dict_create_f') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_GENERAL_UTILS_MOD, ONLY: COPY_CPTR_TO_F_STRING - USE :: API_GENERAL_UTILS_MOD, ONLY: DEREFERENCE_DOUBLE_C_POINTER - - - ! Wrappers for the F2C interface - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MAKE_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: MAKE_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: MAKE_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: MAKE_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: MAKE_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: MAKE_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: MAKE_SH_DICTIONARY - USE :: OPT_DICTIONARY_WRAPPER_MOD , ONLY: MAKE_OPT_DICTIONARY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_PP - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_TYPE_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_LEN_I - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - TYPE(C_PTR), DIMENSION(:), POINTER :: C_DICT_P - CHARACTER(LEN=32) :: F_DICT_TYPE - INTEGER(KIND=C_SIZE_T) :: C_LEN_SZ - - !> Error Flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTYPE_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_LENGTH = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEREFERENCE_DOUBLE_POINTER = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_ALREADY_ASSOCIATED = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED_AFTER_CREATION = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE = 666_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_TYPE_P), ERRFLAG_DICTYPE_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( C_LEN_I .LE. 0, ERRFLAG_INVALID_LENGTH ) - PP_DEBUG_CRITICAL_COND_THROW( C_LEN_I .GT. 32, ERRFLAG_INVALID_LENGTH ) - - !> Get the encoder pointer - C_DICT_P => NULL() - PP_TRYCALL(ERRFLAG_DEREFERENCE_DOUBLE_POINTER) DEREFERENCE_DOUBLE_C_POINTER( & -& C_DICT_PP, 1_JPIB_K, C_DICT_P, HOOKS ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(C_DICT_P(1)), ERRFLAG_DICTIONARY_ALREADY_ASSOCIATED ) - - !> Get the size of the dictionary type - C_LEN_SZ = INT( C_LEN_I, KIND=C_SIZE_T ) - F_DICT_TYPE = REPEAT( ' ', 32 ) - PP_TRYCALL(ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) COPY_CPTR_TO_F_STRING( C_DICT_TYPE_P, C_LEN_SZ, F_DICT_TYPE, HOOKS, TOLOWER=.TRUE. ) - - !> Dictionary creation logic - SELECT CASE ( TRIM(ADJUSTL(F_DICT_TYPE)) ) - - CASE ( 'mars', 'm', 'mars-dict', 'mars_dict' ) - -!$omp critical(API_CREATE_DICTIONARY) - - ! Create the wrappend mars dictionary - C_DICT_P(1) = C_NULL_PTR - PP_TRYCALL(ERRFLAG_UNKNOWN_DICTIONARY_TYPE) MAKE_MARS_DICTIONARY( C_DICT_P(1), HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P(1)), ERRFLAG_DICTIONARY_NOT_ASSOCIATED_AFTER_CREATION ) - -!$omp end critical(API_CREATE_DICTIONARY) - - CASE ( 'parametrization', 'p', 'par', 'param', 'parametrization-dict', 'parametrization_dict', 'par-dict', 'par_dict', 'param-dict', 'param_dict' ) - -!$omp critical(API_CREATE_DICTIONARY) - - ! Create the wrappend parametrization dictionary - C_DICT_P(1) = C_NULL_PTR - PP_TRYCALL(ERRFLAG_UNKNOWN_DICTIONARY_TYPE) MAKE_PAR_DICTIONARY( C_DICT_P(1), HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P(1)), ERRFLAG_DICTIONARY_NOT_ASSOCIATED_AFTER_CREATION ) - -!$omp end critical(API_CREATE_DICTIONARY) - - CASE ( 'healpix', 'healpix_ring', 'healpix_nested' ) - -!$omp critical(API_CREATE_DICTIONARY) - - ! Create the wrappend healpix dictionary - C_DICT_P(1) = C_NULL_PTR - PP_TRYCALL(ERRFLAG_UNKNOWN_DICTIONARY_TYPE) MAKE_HEALPIX_DICTIONARY( C_DICT_P(1), HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P(1)), ERRFLAG_DICTIONARY_NOT_ASSOCIATED_AFTER_CREATION ) - -!$omp end critical(API_CREATE_DICTIONARY) - - - CASE ( 'reducedgg', 'reduced-gg', 'geometryreducedgg', 'geometry-reduced-gg' ) - -!$omp critical(API_CREATE_DICTIONARY) - - ! Create the wrappend healpix dictionary - C_DICT_P(1) = C_NULL_PTR - PP_TRYCALL(ERRFLAG_UNKNOWN_DICTIONARY_TYPE) MAKE_REDUCED_GG_DICTIONARY( C_DICT_P(1), HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P(1)), ERRFLAG_DICTIONARY_NOT_ASSOCIATED_AFTER_CREATION ) - -!$omp end critical(API_CREATE_DICTIONARY) - - CASE ( 'regulargg', 'regular-gg', 'geometryregulargg', 'geometry-regular-gg' ) - -!$omp critical(API_CREATE_DICTIONARY) - - ! Create the wrappend healpix dictionary - C_DICT_P(1) = C_NULL_PTR - PP_TRYCALL(ERRFLAG_UNKNOWN_DICTIONARY_TYPE) MAKE_REGULAR_GG_DICTIONARY( C_DICT_P(1), HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P(1)), ERRFLAG_DICTIONARY_NOT_ASSOCIATED_AFTER_CREATION ) - -!$omp end critical(API_CREATE_DICTIONARY) - - CASE ( 'regularll', 'regular-ll', 'geometryregularll', 'geometry-regular-ll' ) - -!$omp critical(API_CREATE_DICTIONARY) - - ! Create the wrappend healpix dictionary - C_DICT_P(1) = C_NULL_PTR - PP_TRYCALL(ERRFLAG_UNKNOWN_DICTIONARY_TYPE) MAKE_REGULAR_LL_DICTIONARY( C_DICT_P(1), HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P(1)), ERRFLAG_DICTIONARY_NOT_ASSOCIATED_AFTER_CREATION ) - -!$omp end critical(API_CREATE_DICTIONARY) - - CASE ( 'sh', 'spherical-harmonics', 'sphericalharmonics', 'geometry-sh', 'geometry-spherical-harmonics', 'geometrysh', 'geometrysphericalharmonics' ) - -!$omp critical(API_CREATE_DICTIONARY) - - ! Create the wrappend healpix dictionary - C_DICT_P(1) = C_NULL_PTR - PP_TRYCALL(ERRFLAG_UNKNOWN_DICTIONARY_TYPE) MAKE_SH_DICTIONARY( C_DICT_P(1), HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P(1)), ERRFLAG_DICTIONARY_NOT_ASSOCIATED_AFTER_CREATION ) - -!$omp end critical(API_CREATE_DICTIONARY) - - CASE ('options', 'opt', 'cfg', 'configuration' ) - -!$omp critical(API_CREATE_DICTIONARY) - - ! Create the wrappend healpix dictionary - C_DICT_P(1) = C_NULL_PTR - PP_TRYCALL(ERRFLAG_UNKNOWN_DICTIONARY_TYPE) MAKE_OPT_DICTIONARY( C_DICT_P(1), HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P(1)), ERRFLAG_DICTIONARY_NOT_ASSOCIATED_AFTER_CREATION ) - -!$omp end critical(API_CREATE_DICTIONARY) - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DICTYPE_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The dictionary type pointer is not associated' ) - CASE (ERRFLAG_INVALID_LENGTH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The length of the dictionary type is invalid' ) - CASE (ERRFLAG_DEREFERENCE_DOUBLE_POINTER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to dereference the double c pointer for the dictionary' ) - CASE (ERRFLAG_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The dictionary pointer is already associated' ) - CASE (ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to copy the c pointer to fortran string for the dictionary type' ) - CASE (ERRFLAG_UNKNOWN_DICTIONARY_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dictionary type: "'//TRIM(ADJUSTL(F_DICT_TYPE))//'"' ) - CASE (ERRFLAG_DICTIONARY_NOT_ASSOCIATED_AFTER_CREATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The dictionary pointer is not associated after creation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_CREATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_DESTROY' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_DESTROY( C_DICT_PP ) & - BIND(C,NAME='multio_grib2_dict_destroy') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - USE :: API_GENERAL_UTILS_MOD, ONLY: DEREFERENCE_DOUBLE_C_POINTER - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - - ! Enumerators of the dictionaries - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MARS_DICTIONARY_IDX_E - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: PAR_DICTIONARY_IDX_E - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: HEALPIX_DICTIONARY_IDX_E - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: REDUCED_GG_DICTIONARY_IDX_E - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_GG_DICTIONARY_IDX_E - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_LL_DICTIONARY_IDX_E - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: SH_DICTIONARY_IDX_E - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: OPT_DICTIONARY_IDX_E - - ! Free Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: FREE_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: FREE_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: FREE_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: FREE_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: FREE_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: FREE_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: FREE_SH_DICTIONARY - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: FREE_OPT_DICTIONARY - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_SH_DICTIONARY - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_OPT_DICTIONARY - - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_PP - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(C_PTR), DIMENSION(:), POINTER :: C_DICT_P - TYPE(HOOKS_T) :: HOOKS - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEREFERENCE_DOUBLE_POINTER = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_DICTIONARY_ID = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_DICTIONARY = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_WRAPPER = 7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - -!$omp critical(API_REMOVE_DICTIONARY) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_PP), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - - !> Get the encoder pointer - C_DICT_P => NULL() - PP_TRYCALL(ERRFLAG_DEREFERENCE_DOUBLE_POINTER) DEREFERENCE_DOUBLE_C_POINTER( & -& C_DICT_PP, 1_JPIB_K, C_DICT_P, HOOKS ) - - !> Extract info from the encoder - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P(1), & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - !> Get th fortran handle from the c handle - SELECT CASE ( OBJ_ID ) - - CASE (MARS_DICTIONARY_IDX_E) - - BLOCK - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICT - MARS_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_DICT_P(1), MARS_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_DICTIONARY) MARS_DICT%FREE( HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_WRAPPER) FREE_MARS_DICTIONARY( C_DICT_P(1), HOOKS ) - MARS_DICT => NULL() - END BLOCK - - CASE (PAR_DICTIONARY_IDX_E) - - BLOCK - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICT - PAR_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_DICT_P(1), PAR_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_DICTIONARY) PAR_DICT%FREE( HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_WRAPPER) FREE_PAR_DICTIONARY( C_DICT_P(1), HOOKS ) - PAR_DICT => NULL() - END BLOCK - - CASE (HEALPIX_DICTIONARY_IDX_E) - - BLOCK - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICT - HEALPIX_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_HEALPIX_DICTIONARY( C_DICT_P(1), HEALPIX_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_DICTIONARY) HEALPIX_DICT%FREE( HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_WRAPPER) FREE_HEALPIX_DICTIONARY( C_DICT_P(1), HOOKS ) - HEALPIX_DICT => NULL() - END BLOCK - - CASE (REDUCED_GG_DICTIONARY_IDX_E) - - BLOCK - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REDUCED_GG_DICTIONARY( C_DICT_P(1), REDUCED_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_DICTIONARY) REDUCED_GG_DICT%FREE( HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_WRAPPER) FREE_REDUCED_GG_DICTIONARY( C_DICT_P(1), HOOKS ) - REDUCED_GG_DICT => NULL() - END BLOCK - - CASE (REGULAR_GG_DICTIONARY_IDX_E) - - BLOCK - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_GG_DICTIONARY( C_DICT_P(1), REGULAR_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_DICTIONARY) REGULAR_GG_DICT%FREE( HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_WRAPPER) FREE_REGULAR_GG_DICTIONARY( C_DICT_P(1), HOOKS ) - REGULAR_GG_DICT => NULL() - END BLOCK - - CASE (REGULAR_LL_DICTIONARY_IDX_E) - - BLOCK - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_LL_DICTIONARY( C_DICT_P(1), REGULAR_LL_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_DICTIONARY) REGULAR_LL_DICT%FREE( HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_WRAPPER) FREE_REGULAR_LL_DICTIONARY( C_DICT_P(1), HOOKS ) - REGULAR_LL_DICT => NULL() - END BLOCK - - CASE (SH_DICTIONARY_IDX_E) - - BLOCK - TYPE(SH_T), POINTER :: SH_DICT - SH_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_SH_DICTIONARY( C_DICT_P(1), SH_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_DICTIONARY) SH_DICT%FREE( HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_WRAPPER) FREE_SH_DICTIONARY( C_DICT_P(1), HOOKS ) - SH_DICT => NULL() - END BLOCK - - CASE (OPT_DICTIONARY_IDX_E) - - BLOCK - TYPE(API_OPTIONS_T), POINTER :: OPT_DICT - OPT_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_OPT_DICTIONARY( C_DICT_P(1), OPT_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_FREE_WRAPPER) FREE_OPT_DICTIONARY( C_DICT_P(1), HOOKS ) - OPT_DICT => NULL() - END BLOCK - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_INVALID_DICTIONARY_ID ) - - END SELECT - - ! Reset the dictionary pointer - C_DICT_P(1) = C_NULL_PTR - -!$omp end critical(API_REMOVE_DICTIONARY) - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The dictionary pointer is not associated' ) - CASE (ERRFLAG_DEREFERENCE_DOUBLE_POINTER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to dereference the double c pointer for the dictionary' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get info from the dictionary' ) - CASE (ERRFLAG_INVALID_DICTIONARY_ID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid dictionary id' ) - CASE (ERRFLAG_FREE_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free the dictionary' ) - CASE (ERRFLAG_FREE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free the wrapper' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_DESTROY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_SET' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_SET( C_DICT_P, C_KEY_P, C_KLEN_I, C_VALUE_P, C_VLEN_I ) & - BIND(C,NAME='multio_grib2_dict_set_f') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - USE :: API_GENERAL_UTILS_MOD, ONLY: COPY_CPTR_TO_F_STRING - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - - ! Enumerators of the dictionaries - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MARS_DICTIONARY_IDX_E - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: PAR_DICTIONARY_IDX_E - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: HEALPIX_DICTIONARY_IDX_E - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: REDUCED_GG_DICTIONARY_IDX_E - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_GG_DICTIONARY_IDX_E - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_LL_DICTIONARY_IDX_E - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: SH_DICTIONARY_IDX_E - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: OPT_DICTIONARY_IDX_E - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_SH_DICTIONARY - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_OPT_DICTIONARY - - ! Dictionary iterators - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_NAME2ITERATOR - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_NAME2ITERATOR - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_NAME2ITERATOR - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_NAME2ITERATOR - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_NAME2ITERATOR - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: OPTIONS_DICTIONARY_NAME2ITERATOR - - ! Dictionary setters callbacks - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_SET_VALUE_FROM_STRING - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_SET_VALUE_FROM_STRING - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_SET_VALUE_FROM_STRING - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_SET_VALUE_FROM_STRING - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_SET_VALUE_FROM_STRING - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_SET_VALUE_FROM_STRING - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_SET_VALUE_FROM_STRING - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: OPTIONS_DICTIONARY_SET_VALUE_FROM_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_KEY_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_KLEN_I - TYPE(C_PTR), VALUE, INTENT(IN) :: C_VALUE_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_VLEN_I - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - - ! Local variables for dictionary type strings - CHARACTER(LEN=C_KLEN_I) :: F_KEY - CHARACTER(LEN=C_VLEN_I) :: F_VAL - INTEGER(KIND=C_SIZE_T) :: C_KLEN_SZ - INTEGER(KIND=C_SIZE_T) :: C_VLEN_SZ - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - INTEGER(KIND=JPIB_K) :: ITERATOR - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_ASSOCIATED = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_VALUE_NOT_ASSOCIATED = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_KEY_LENGTH = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_VALUE_LENGTH = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO = 7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY = 8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR = 9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_VAL = 10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE = 666_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_KEY_P), ERRFLAG_KEY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_VALUE_P), ERRFLAG_VALUE_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( C_KLEN_I.LE.0, ERRFLAG_INVALID_KEY_LENGTH ) - PP_DEBUG_CRITICAL_COND_THROW( C_VLEN_I.LE.0, ERRFLAG_INVALID_VALUE_LENGTH ) - - !> Get the size of the dictionary type - C_KLEN_SZ = INT( C_KLEN_I, KIND=C_SIZE_T ) - F_KEY = REPEAT( ' ', C_KLEN_I ) - PP_TRYCALL(ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) COPY_CPTR_TO_F_STRING( C_KEY_P, C_KLEN_SZ, F_KEY, HOOKS, TOLOWER=.TRUE. ) - - !> Get the size of the dictionary type - C_VLEN_SZ = INT( C_VLEN_I, KIND=C_SIZE_T ) - F_VAL = REPEAT( ' ', C_VLEN_I ) - PP_TRYCALL(ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) COPY_CPTR_TO_F_STRING( C_VALUE_P, C_VLEN_SZ, F_VAL, HOOKS, TOLOWER=.TRUE. ) - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - !> Extract the dictionaries and set the key-value pair - SELECT CASE ( OBJ_ID ) - - CASE ( MARS_DICTIONARY_IDX_E ) - - BLOCK - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICT - MARS_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_DICT_P, MARS_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) MARS_DICTIONARY_NAME2ITERATOR( MARS_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) MARS_DICTIONARY_SET_VALUE_FROM_STRING( MARS_DICT, ITERATOR, F_VAL, HOOKS ) - MARS_DICT => NULL() - END BLOCK - - CASE ( PAR_DICTIONARY_IDX_E ) - - BLOCK - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICT - PAR_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_DICT_P, PAR_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) PAR_DICTIONARY_NAME2ITERATOR( PAR_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) PAR_DICTIONARY_SET_VALUE_FROM_STRING( PAR_DICT, ITERATOR, F_VAL, HOOKS ) - PAR_DICT => NULL() - END BLOCK - - CASE ( HEALPIX_DICTIONARY_IDX_E ) - - BLOCK - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICT - HEALPIX_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_HEALPIX_DICTIONARY( C_DICT_P, HEALPIX_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) HEALPIX_DICTIONARY_NAME2ITERATOR( HEALPIX_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) HEALPIX_DICTIONARY_SET_VALUE_FROM_STRING( HEALPIX_DICT, ITERATOR, F_VAL, HOOKS ) - HEALPIX_DICT => NULL() - END BLOCK - - CASE ( REDUCED_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REDUCED_GG_DICTIONARY( C_DICT_P, REDUCED_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REDUCED_GG_DICTIONARY_NAME2ITERATOR( REDUCED_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REDUCED_GG_DICTIONARY_SET_VALUE_FROM_STRING( REDUCED_GG_DICT, ITERATOR, F_VAL, HOOKS ) - REDUCED_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_GG_DICTIONARY( C_DICT_P, REGULAR_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_GG_DICTIONARY_NAME2ITERATOR( REGULAR_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REGULAR_GG_DICTIONARY_SET_VALUE_FROM_STRING( REGULAR_GG_DICT, ITERATOR, F_VAL, HOOKS ) - REGULAR_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_LL_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_LL_DICTIONARY( C_DICT_P, REGULAR_LL_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_LL_DICTIONARY_NAME2ITERATOR( REGULAR_LL_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REGULAR_LL_DICTIONARY_SET_VALUE_FROM_STRING( REGULAR_LL_DICT, ITERATOR, F_VAL, HOOKS ) - REGULAR_LL_DICT => NULL() - END BLOCK - - - CASE ( SH_DICTIONARY_IDX_E ) - - BLOCK - TYPE(SH_T), POINTER :: SH_DICT - SH_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_SH_DICTIONARY( C_DICT_P, SH_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) SH_DICTIONARY_NAME2ITERATOR( SH_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) SH_DICTIONARY_SET_VALUE_FROM_STRING( SH_DICT, ITERATOR, F_VAL, HOOKS ) - SH_DICT => NULL() - END BLOCK - - CASE ( OPT_DICTIONARY_IDX_E ) - - BLOCK - TYPE(API_OPTIONS_T), POINTER :: OPT_DICT - OPT_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_OPT_DICTIONARY( C_DICT_P, OPT_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) OPTIONS_DICTIONARY_NAME2ITERATOR( OPT_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) OPTIONS_DICTIONARY_SET_VALUE_FROM_STRING( OPT_DICT, ITERATOR, F_VAL, HOOKS ) - OPT_DICT => NULL() - END BLOCK - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The dictionary pointer is not associated' ) - CASE (ERRFLAG_KEY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The key pointer is not associated' ) - CASE (ERRFLAG_VALUE_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The value pointer is not associated' ) - CASE (ERRFLAG_INVALID_KEY_LENGTH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The key length is invalid' ) - CASE (ERRFLAG_INVALID_VALUE_LENGTH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The value length is invalid' ) - CASE (ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to copy the c pointer to fortran string for the key or value' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get info from the dictionary' ) - CASE (ERRFLAG_UNKNOWN_DICTIONARY_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dictionary type' ) - CASE (ERRFLAG_EXTRACT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract the fortran dictionary from the c dictionary' ) - CASE (ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert the key name to an iterator' ) - CASE (ERRFLAG_UNABLE_TO_SET_VAL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set the value for the given key in the dictionary' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_SET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_SET_INT64' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_SET_INT64( C_DICT_P, C_KEY_P, C_KLEN_I, C_VAL_I64 ) & - BIND(C,NAME='multio_grib2_dict_set_int64_f') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT64_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - USE :: API_GENERAL_UTILS_MOD, ONLY: COPY_CPTR_TO_F_STRING - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - - ! Enumerators of the dictionaries - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MARS_DICTIONARY_IDX_E - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: PAR_DICTIONARY_IDX_E - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: HEALPIX_DICTIONARY_IDX_E - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: REDUCED_GG_DICTIONARY_IDX_E - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_GG_DICTIONARY_IDX_E - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_LL_DICTIONARY_IDX_E - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: SH_DICTIONARY_IDX_E - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_SH_DICTIONARY - - ! Dictionary iterators - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_NAME2ITERATOR - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_NAME2ITERATOR - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_NAME2ITERATOR - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_NAME2ITERATOR - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_NAME2ITERATOR - - ! Dictionary setters callbacks - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_SET_VALUE_FROM_INT64 - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_SET_VALUE_FROM_INT64 - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_SET_VALUE_FROM_INT64 - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64 - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64 - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64 - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64 - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_KEY_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_KLEN_I - INTEGER(KIND=C_INT64_T), VALUE, INTENT(IN) :: C_VAL_I64 - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - CHARACTER(LEN=C_KLEN_I) :: F_KEY - INTEGER(KIND=C_SIZE_T) :: C_KLEN_SZ - INTEGER(KIND=JPIB_K) :: F_VAL - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - INTEGER(KIND=JPIB_K) :: ITERATOR - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_ASSOCIATED = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_KEY_LENGTH = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR = 7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_VAL = 8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE = 666_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_KEY_P), ERRFLAG_KEY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( C_KLEN_I.LE.0, ERRFLAG_INVALID_KEY_LENGTH ) - - !> Get the size of the dictionary type - C_KLEN_SZ = INT( C_KLEN_I, KIND=C_SIZE_T ) - F_KEY = REPEAT( ' ', C_KLEN_I ) - PP_TRYCALL(ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) COPY_CPTR_TO_F_STRING( C_KEY_P, C_KLEN_SZ, F_KEY, HOOKS, TOLOWER=.TRUE. ) - - !> Get the size of the dictionary type - F_VAL = INT( C_VAL_I64, KIND=JPIB_K ) - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - - !> Extract the dictionaries and set the key-value pair - SELECT CASE ( OBJ_ID ) - - CASE ( MARS_DICTIONARY_IDX_E ) - - BLOCK - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICT - MARS_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_DICT_P, MARS_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) MARS_DICTIONARY_NAME2ITERATOR( MARS_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) MARS_DICTIONARY_SET_VALUE_FROM_INT64( MARS_DICT, ITERATOR, F_VAL, HOOKS ) - MARS_DICT => NULL() - END BLOCK - - CASE ( PAR_DICTIONARY_IDX_E ) - - BLOCK - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICT - PAR_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_DICT_P, PAR_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) PAR_DICTIONARY_NAME2ITERATOR( PAR_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) PAR_DICTIONARY_SET_VALUE_FROM_INT64( PAR_DICT, ITERATOR, F_VAL, HOOKS ) - PAR_DICT => NULL() - END BLOCK - - CASE ( HEALPIX_DICTIONARY_IDX_E ) - - BLOCK - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICT - HEALPIX_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_HEALPIX_DICTIONARY( C_DICT_P, HEALPIX_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) HEALPIX_DICTIONARY_NAME2ITERATOR( HEALPIX_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64( HEALPIX_DICT, ITERATOR, F_VAL, HOOKS ) - HEALPIX_DICT => NULL() - END BLOCK - - CASE ( REDUCED_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REDUCED_GG_DICTIONARY( C_DICT_P, REDUCED_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REDUCED_GG_DICTIONARY_NAME2ITERATOR( REDUCED_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64( REDUCED_GG_DICT, ITERATOR, F_VAL, HOOKS ) - REDUCED_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_GG_DICTIONARY( C_DICT_P, REGULAR_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_GG_DICTIONARY_NAME2ITERATOR( REGULAR_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64( REGULAR_GG_DICT, ITERATOR, F_VAL, HOOKS ) - REGULAR_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_LL_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_LL_DICTIONARY( C_DICT_P, REGULAR_LL_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_LL_DICTIONARY_NAME2ITERATOR( REGULAR_LL_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64( REGULAR_LL_DICT, ITERATOR, F_VAL, HOOKS ) - REGULAR_LL_DICT => NULL() - END BLOCK - - - CASE ( SH_DICTIONARY_IDX_E ) - - BLOCK - TYPE(SH_T), POINTER :: SH_DICT - SH_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_SH_DICTIONARY( C_DICT_P, SH_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) SH_DICTIONARY_NAME2ITERATOR( SH_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) SH_DICTIONARY_SET_VALUE_FROM_INT64( SH_DICT, ITERATOR, F_VAL, HOOKS ) - SH_DICT => NULL() - END BLOCK - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The dictionary pointer is not associated' ) - CASE (ERRFLAG_KEY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The key pointer is not associated' ) - CASE (ERRFLAG_INVALID_KEY_LENGTH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The key length is invalid' ) - CASE (ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to copy the c pointer to fortran string for the key' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get info from the dictionary' ) - CASE (ERRFLAG_UNKNOWN_DICTIONARY_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dictionary type' ) - CASE (ERRFLAG_EXTRACT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract the fortran dictionary from the c dictionary' ) - CASE (ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert the key name to an iterator' ) - CASE (ERRFLAG_UNABLE_TO_SET_VAL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set the value for the given key in the dictionary' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_SET_INT64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_SET_REAL64' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_SET_REAL64( C_DICT_P, C_KEY_P, C_KLEN_I, C_VAL_R64 ) & - BIND(C,NAME='multio_grib2_dict_set_real64_f') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_DOUBLE - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - USE :: API_GENERAL_UTILS_MOD, ONLY: COPY_CPTR_TO_F_STRING - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - - ! Enumerators of the dictionaries - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MARS_DICTIONARY_IDX_E - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: PAR_DICTIONARY_IDX_E - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: HEALPIX_DICTIONARY_IDX_E - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: REDUCED_GG_DICTIONARY_IDX_E - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_GG_DICTIONARY_IDX_E - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_LL_DICTIONARY_IDX_E - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: SH_DICTIONARY_IDX_E - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_SH_DICTIONARY - - ! Dictionary iterators - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_NAME2ITERATOR - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_NAME2ITERATOR - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_NAME2ITERATOR - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_NAME2ITERATOR - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_NAME2ITERATOR - - ! Dictionary setters callbacks - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_SET_VALUE_FROM_REAL64 - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_SET_VALUE_FROM_REAL64 - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_SET_VALUE_FROM_REAL64 - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64 - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64 - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64 - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64 - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_KEY_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_KLEN_I - REAL(KIND=C_DOUBLE), VALUE, INTENT(IN) :: C_VAL_R64 - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - CHARACTER(LEN=C_KLEN_I) :: F_KEY - INTEGER(KIND=C_SIZE_T) :: C_KLEN_SZ - REAL(KIND=JPRB_K) :: F_VAL - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - INTEGER(KIND=JPIB_K) :: ITERATOR - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_ASSOCIATED = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_KEY_LENGTH = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR = 7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_VAL = 8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE = 666_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_KEY_P), ERRFLAG_KEY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( C_KLEN_I.LE.0, ERRFLAG_INVALID_KEY_LENGTH ) - - !> Get the size of the dictionary type - C_KLEN_SZ = INT( C_KLEN_I, KIND=C_SIZE_T ) - F_KEY = REPEAT( ' ', C_KLEN_I ) - PP_TRYCALL(ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) COPY_CPTR_TO_F_STRING( C_KEY_P, C_KLEN_SZ, F_KEY, HOOKS, TOLOWER=.TRUE. ) - - !> Get the size of the dictionary type - F_VAL = REAL( C_VAL_R64, KIND=JPRB_K ) - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - - !> Extract the dictionaries and set the key-value pair - SELECT CASE ( OBJ_ID ) - - CASE ( MARS_DICTIONARY_IDX_E ) - - BLOCK - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICT - MARS_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_DICT_P, MARS_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) MARS_DICTIONARY_NAME2ITERATOR( MARS_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) MARS_DICTIONARY_SET_VALUE_FROM_REAL64( MARS_DICT, ITERATOR, F_VAL, HOOKS ) - MARS_DICT => NULL() - END BLOCK - - CASE ( PAR_DICTIONARY_IDX_E ) - - BLOCK - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICT - PAR_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_DICT_P, PAR_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) PAR_DICTIONARY_NAME2ITERATOR( PAR_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) PAR_DICTIONARY_SET_VALUE_FROM_REAL64( PAR_DICT, ITERATOR, F_VAL, HOOKS ) - PAR_DICT => NULL() - END BLOCK - - CASE ( HEALPIX_DICTIONARY_IDX_E ) - - BLOCK - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICT - HEALPIX_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_HEALPIX_DICTIONARY( C_DICT_P, HEALPIX_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) HEALPIX_DICTIONARY_NAME2ITERATOR( HEALPIX_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64( HEALPIX_DICT, ITERATOR, F_VAL, HOOKS ) - HEALPIX_DICT => NULL() - END BLOCK - - CASE ( REDUCED_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REDUCED_GG_DICTIONARY( C_DICT_P, REDUCED_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REDUCED_GG_DICTIONARY_NAME2ITERATOR( REDUCED_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64( REDUCED_GG_DICT, ITERATOR, F_VAL, HOOKS ) - REDUCED_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_GG_DICTIONARY( C_DICT_P, REGULAR_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_GG_DICTIONARY_NAME2ITERATOR( REGULAR_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64( REGULAR_GG_DICT, ITERATOR, F_VAL, HOOKS ) - REGULAR_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_LL_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_LL_DICTIONARY( C_DICT_P, REGULAR_LL_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_LL_DICTIONARY_NAME2ITERATOR( REGULAR_LL_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64( REGULAR_LL_DICT, ITERATOR, F_VAL, HOOKS ) - REGULAR_LL_DICT => NULL() - END BLOCK - - - CASE ( SH_DICTIONARY_IDX_E ) - - BLOCK - TYPE(SH_T), POINTER :: SH_DICT - SH_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_SH_DICTIONARY( C_DICT_P, SH_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) SH_DICTIONARY_NAME2ITERATOR( SH_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) SH_DICTIONARY_SET_VALUE_FROM_REAL64( SH_DICT, ITERATOR, F_VAL, HOOKS ) - SH_DICT => NULL() - END BLOCK - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_SET_REAL64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_SET_INT64_ARRAY' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_SET_INT64_ARRAY( C_DICT_P, C_KEY_P, C_KLEN_I, C_VALUE_P, C_VLEN_I ) & - BIND(C,NAME='multio_grib2_dict_set_int64_array_f') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT64_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - USE :: API_GENERAL_UTILS_MOD, ONLY: COPY_CPTR_TO_F_STRING - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - - ! Enumerators of the dictionaries - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MARS_DICTIONARY_IDX_E - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: PAR_DICTIONARY_IDX_E - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: HEALPIX_DICTIONARY_IDX_E - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: REDUCED_GG_DICTIONARY_IDX_E - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_GG_DICTIONARY_IDX_E - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_LL_DICTIONARY_IDX_E - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: SH_DICTIONARY_IDX_E - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_SH_DICTIONARY - - ! Dictionary iterators - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_NAME2ITERATOR - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_NAME2ITERATOR - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_NAME2ITERATOR - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_NAME2ITERATOR - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_NAME2ITERATOR - - ! Dictionary setters callbacks - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_KEY_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_KLEN_I - TYPE(C_PTR), VALUE, INTENT(IN) :: C_VALUE_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_VLEN_I - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - CHARACTER(LEN=C_KLEN_I) :: F_KEY - INTEGER(KIND=C_SIZE_T) :: C_KLEN_SZ - INTEGER(KIND=JPIB_K), DIMENSION(:), POINTER :: F_VAL - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - INTEGER(KIND=JPIB_K) :: ITERATOR - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_ASSOCIATED = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_KEY_LENGTH = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_VAL_LENGTH = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY = 7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR = 8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_VAL = 9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE = 666_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_KEY_P), ERRFLAG_KEY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( C_KLEN_I.LE.0, ERRFLAG_INVALID_KEY_LENGTH ) - PP_DEBUG_CRITICAL_COND_THROW( C_VLEN_I.LE.0, ERRFLAG_INVALID_VAL_LENGTH ) - - !> Get the size of the dictionary type - C_KLEN_SZ = INT( C_KLEN_I, KIND=C_SIZE_T ) - F_KEY = REPEAT( ' ', C_KLEN_I ) - PP_TRYCALL(ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) COPY_CPTR_TO_F_STRING( C_KEY_P, C_KLEN_SZ, F_KEY, HOOKS, TOLOWER=.TRUE. ) - - !> Get the size of the dictionary type - F_VAL => NULL() - CALL C_F_POINTER( C_VALUE_P, F_VAL, [ C_VLEN_I ] ) - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - - !> Extract the dictionaries and set the key-value pair - SELECT CASE ( OBJ_ID ) - - CASE ( MARS_DICTIONARY_IDX_E ) - - BLOCK - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICT - MARS_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_DICT_P, MARS_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) MARS_DICTIONARY_NAME2ITERATOR( MARS_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) MARS_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( MARS_DICT, ITERATOR, F_VAL, HOOKS ) - MARS_DICT => NULL() - END BLOCK - - CASE ( PAR_DICTIONARY_IDX_E ) - - BLOCK - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICT - PAR_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_DICT_P, PAR_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) PAR_DICTIONARY_NAME2ITERATOR( PAR_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) PAR_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( PAR_DICT, ITERATOR, F_VAL, HOOKS ) - PAR_DICT => NULL() - END BLOCK - - CASE ( HEALPIX_DICTIONARY_IDX_E ) - - BLOCK - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICT - HEALPIX_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_HEALPIX_DICTIONARY( C_DICT_P, HEALPIX_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) HEALPIX_DICTIONARY_NAME2ITERATOR( HEALPIX_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( HEALPIX_DICT, ITERATOR, F_VAL, HOOKS ) - HEALPIX_DICT => NULL() - END BLOCK - - CASE ( REDUCED_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REDUCED_GG_DICTIONARY( C_DICT_P, REDUCED_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REDUCED_GG_DICTIONARY_NAME2ITERATOR( REDUCED_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( REDUCED_GG_DICT, ITERATOR, F_VAL, HOOKS ) - REDUCED_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_GG_DICTIONARY( C_DICT_P, REGULAR_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_GG_DICTIONARY_NAME2ITERATOR( REGULAR_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( REGULAR_GG_DICT, ITERATOR, F_VAL, HOOKS ) - REGULAR_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_LL_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_LL_DICTIONARY( C_DICT_P, REGULAR_LL_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_LL_DICTIONARY_NAME2ITERATOR( REGULAR_LL_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( REGULAR_LL_DICT, ITERATOR, F_VAL, HOOKS ) - REGULAR_LL_DICT => NULL() - END BLOCK - - - CASE ( SH_DICTIONARY_IDX_E ) - - BLOCK - TYPE(SH_T), POINTER :: SH_DICT - SH_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_SH_DICTIONARY( C_DICT_P, SH_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) SH_DICTIONARY_NAME2ITERATOR( SH_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) SH_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( SH_DICT, ITERATOR, F_VAL, HOOKS ) - SH_DICT => NULL() - END BLOCK - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Dictionary pointer is not associated' ) - CASE (ERRFLAG_KEY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key pointer is not associated' ) - CASE (ERRFLAG_INVALID_KEY_LENGTH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid key length' ) - CASE (ERRFLAG_INVALID_VAL_LENGTH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid value length' ) - CASE (ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to copy C pointer to Fortran string' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get dictionary info' ) - CASE (ERRFLAG_EXTRACT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract dictionary' ) - CASE (ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert key name to iterator' ) - CASE (ERRFLAG_UNABLE_TO_SET_VAL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set value in dictionary' ) - CASE (ERRFLAG_UNKNOWN_DICTIONARY_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dictionary type' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_SET_INT64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_SET_REAL64_ARRAY' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_SET_REAL64_ARRAY( C_DICT_P, C_KEY_P, C_KLEN_I, C_VALUE_P, C_VLEN_I ) & - BIND(C,NAME='multio_grib2_dict_set_real64_array_f') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT64_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - USE :: API_GENERAL_UTILS_MOD, ONLY: COPY_CPTR_TO_F_STRING - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - - ! Enumerators of the dictionaries - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MARS_DICTIONARY_IDX_E - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: PAR_DICTIONARY_IDX_E - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: HEALPIX_DICTIONARY_IDX_E - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: REDUCED_GG_DICTIONARY_IDX_E - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_GG_DICTIONARY_IDX_E - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_LL_DICTIONARY_IDX_E - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: SH_DICTIONARY_IDX_E - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_SH_DICTIONARY - - ! Dictionary iterators - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_NAME2ITERATOR - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_NAME2ITERATOR - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_NAME2ITERATOR - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_NAME2ITERATOR - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_NAME2ITERATOR - - ! Dictionary setters callbacks - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_KEY_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_KLEN_I - TYPE(C_PTR), VALUE, INTENT(IN) :: C_VALUE_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_VLEN_I - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - CHARACTER(LEN=C_KLEN_I) :: F_KEY - REAL(KIND=JPRB_K), DIMENSION(:), POINTER :: F_VAL - INTEGER(KIND=C_SIZE_T) :: C_KLEN_SZ - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - INTEGER(KIND=JPIB_K) :: ITERATOR - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_ASSOCIATED = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_KEY_LENGTH = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_VAL_LENGTH = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY = 7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR = 8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_VAL = 9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE = 666_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_KEY_P), ERRFLAG_KEY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( C_KLEN_I.LE.0, ERRFLAG_INVALID_KEY_LENGTH ) - PP_DEBUG_CRITICAL_COND_THROW( C_VLEN_I.LE.0, ERRFLAG_INVALID_VAL_LENGTH ) - - !> Get the size of the dictionary type - C_KLEN_SZ = INT( C_KLEN_I, KIND=C_SIZE_T ) - F_KEY = REPEAT( ' ', C_KLEN_I ) - PP_TRYCALL(ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) COPY_CPTR_TO_F_STRING( C_KEY_P, C_KLEN_SZ, F_KEY, HOOKS, TOLOWER=.TRUE. ) - - !> Get the size of the dictionary type - F_VAL => NULL() - CALL C_F_POINTER( C_VALUE_P, F_VAL, [ C_VLEN_I ] ) - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - !> Extract the dictionaries and set the key-value pair - SELECT CASE ( OBJ_ID ) - - CASE ( MARS_DICTIONARY_IDX_E ) - - BLOCK - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICT - MARS_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_DICT_P, MARS_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) MARS_DICTIONARY_NAME2ITERATOR( MARS_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) MARS_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( MARS_DICT, ITERATOR, F_VAL, HOOKS ) - MARS_DICT => NULL() - END BLOCK - - CASE ( PAR_DICTIONARY_IDX_E ) - - BLOCK - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICT - PAR_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_DICT_P, PAR_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) PAR_DICTIONARY_NAME2ITERATOR( PAR_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) PAR_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( PAR_DICT, ITERATOR, F_VAL, HOOKS ) - PAR_DICT => NULL() - END BLOCK - - CASE ( HEALPIX_DICTIONARY_IDX_E ) - - BLOCK - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICT - HEALPIX_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_HEALPIX_DICTIONARY( C_DICT_P, HEALPIX_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) HEALPIX_DICTIONARY_NAME2ITERATOR( HEALPIX_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( HEALPIX_DICT, ITERATOR, F_VAL, HOOKS ) - HEALPIX_DICT => NULL() - END BLOCK - - CASE ( REDUCED_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REDUCED_GG_DICTIONARY( C_DICT_P, REDUCED_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REDUCED_GG_DICTIONARY_NAME2ITERATOR( REDUCED_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( REDUCED_GG_DICT, ITERATOR, F_VAL, HOOKS ) - REDUCED_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_GG_DICTIONARY( C_DICT_P, REGULAR_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_GG_DICTIONARY_NAME2ITERATOR( REGULAR_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( REGULAR_GG_DICT, ITERATOR, F_VAL, HOOKS ) - REGULAR_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_LL_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_LL_DICTIONARY( C_DICT_P, REGULAR_LL_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_LL_DICTIONARY_NAME2ITERATOR( REGULAR_LL_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( REGULAR_LL_DICT, ITERATOR, F_VAL, HOOKS ) - REGULAR_LL_DICT => NULL() - END BLOCK - - - CASE ( SH_DICTIONARY_IDX_E ) - - BLOCK - TYPE(SH_T), POINTER :: SH_DICT - SH_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_SH_DICTIONARY( C_DICT_P, SH_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) SH_DICTIONARY_NAME2ITERATOR( SH_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_VAL) SH_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( SH_DICT, ITERATOR, F_VAL, HOOKS ) - SH_DICT => NULL() - END BLOCK - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Dictionary pointer is not associated' ) - CASE (ERRFLAG_KEY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key pointer is not associated' ) - CASE (ERRFLAG_INVALID_KEY_LENGTH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid key length' ) - CASE (ERRFLAG_INVALID_VAL_LENGTH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid value length' ) - CASE (ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to copy C pointer to Fortran string' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get dictionary info' ) - CASE (ERRFLAG_EXTRACT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract dictionary' ) - CASE (ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert key name to iterator' ) - CASE (ERRFLAG_UNABLE_TO_SET_VAL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set value in dictionary' ) - CASE (ERRFLAG_UNKNOWN_DICTIONARY_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dictionary type' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_SET_REAL64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_SET_GEOMETRY' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_SET_GEOMETRY( DICT, SUBDICT ) & - BIND(C,NAME='multio_grib2_dict_set_geometry') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: DICT - TYPE(C_PTR), VALUE, INTENT(IN) :: SUBDICT - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED = 1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_IMPLEMENTED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Function not yet implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_SET_GEOMETRY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_GET' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_GET( C_DICT_P, C_KEY_P, C_KLEN_I, C_VALUE_P ) & - BIND(C,NAME='multio_grib2_dict_get_f') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - USE :: API_GENERAL_UTILS_MOD, ONLY: COPY_CPTR_TO_F_STRING - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - - ! Enumerators of the dictionaries - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MARS_DICTIONARY_IDX_E - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: PAR_DICTIONARY_IDX_E - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: HEALPIX_DICTIONARY_IDX_E - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: REDUCED_GG_DICTIONARY_IDX_E - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_GG_DICTIONARY_IDX_E - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_LL_DICTIONARY_IDX_E - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: SH_DICTIONARY_IDX_E - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_SH_DICTIONARY - - ! Dictionary iterators - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_NAME2ITERATOR - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_NAME2ITERATOR - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_NAME2ITERATOR - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_NAME2ITERATOR - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_NAME2ITERATOR - - ! Dictionary setters callbacks - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_GET_VALUE_AS_STRING - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_GET_VALUE_AS_STRING - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_GET_VALUE_AS_STRING - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_GET_VALUE_AS_STRING - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_GET_VALUE_AS_STRING - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_GET_VALUE_AS_STRING - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_GET_VALUE_AS_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_KEY_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_KLEN_I - TYPE(C_PTR), INTENT(INOUT) :: C_VALUE_P - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - CHARACTER(LEN=C_KLEN_I) :: F_KEY - INTEGER(KIND=C_SIZE_T) :: C_KLEN_SZ - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - INTEGER(KIND=JPIB_K) :: ITERATOR - LOGICAL :: L_HAS - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_ASSOCIATED = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_KEY_LENGTH = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY = 7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR = 8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_VAL = 9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE = 666_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_KEY_P), ERRFLAG_KEY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( C_KLEN_I.LE.0, ERRFLAG_INVALID_KEY_LENGTH ) - - !> Get the size of the dictionary type - C_KLEN_SZ = INT( C_KLEN_I, KIND=C_SIZE_T ) - F_KEY = REPEAT( ' ', C_KLEN_I ) - PP_TRYCALL(ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) COPY_CPTR_TO_F_STRING( C_KEY_P, C_KLEN_SZ, F_KEY, HOOKS, TOLOWER=.TRUE. ) - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - - !> Extract the dictionaries and set the key-value pair - SELECT CASE ( OBJ_ID ) - - CASE ( MARS_DICTIONARY_IDX_E ) - - BLOCK - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICT - MARS_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_DICT_P, MARS_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) MARS_DICTIONARY_NAME2ITERATOR( MARS_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) MARS_DICTIONARY_GET_VALUE_AS_STRING( MARS_DICT, ITERATOR, C_VALUE_P, L_HAS, HOOKS ) - MARS_DICT => NULL() - END BLOCK - - CASE ( PAR_DICTIONARY_IDX_E ) - - BLOCK - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICT - PAR_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_DICT_P, PAR_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) PAR_DICTIONARY_NAME2ITERATOR( PAR_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) PAR_DICTIONARY_GET_VALUE_AS_STRING( PAR_DICT, ITERATOR, C_VALUE_P, L_HAS, HOOKS ) - PAR_DICT => NULL() - END BLOCK - - CASE ( HEALPIX_DICTIONARY_IDX_E ) - - BLOCK - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICT - HEALPIX_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_HEALPIX_DICTIONARY( C_DICT_P, HEALPIX_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) HEALPIX_DICTIONARY_NAME2ITERATOR( HEALPIX_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) HEALPIX_DICTIONARY_GET_VALUE_AS_STRING( HEALPIX_DICT, ITERATOR, C_VALUE_P, L_HAS, HOOKS ) - HEALPIX_DICT => NULL() - END BLOCK - - CASE ( REDUCED_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REDUCED_GG_DICTIONARY( C_DICT_P, REDUCED_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REDUCED_GG_DICTIONARY_NAME2ITERATOR( REDUCED_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) REDUCED_GG_DICTIONARY_GET_VALUE_AS_STRING( REDUCED_GG_DICT, ITERATOR, C_VALUE_P, L_HAS, HOOKS ) - REDUCED_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_GG_DICTIONARY( C_DICT_P, REGULAR_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_GG_DICTIONARY_NAME2ITERATOR( REGULAR_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) REGULAR_GG_DICTIONARY_GET_VALUE_AS_STRING( REGULAR_GG_DICT, ITERATOR, C_VALUE_P, L_HAS, HOOKS ) - REGULAR_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_LL_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_LL_DICTIONARY( C_DICT_P, REGULAR_LL_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_LL_DICTIONARY_NAME2ITERATOR( REGULAR_LL_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) REGULAR_LL_DICTIONARY_GET_VALUE_AS_STRING( REGULAR_LL_DICT, ITERATOR, C_VALUE_P, L_HAS, HOOKS ) - REGULAR_LL_DICT => NULL() - END BLOCK - - - CASE ( SH_DICTIONARY_IDX_E ) - - BLOCK - TYPE(SH_T), POINTER :: SH_DICT - SH_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_SH_DICTIONARY( C_DICT_P, SH_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) SH_DICTIONARY_NAME2ITERATOR( SH_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) SH_DICTIONARY_GET_VALUE_AS_STRING( SH_DICT, ITERATOR, C_VALUE_P, L_HAS, HOOKS ) - SH_DICT => NULL() - END BLOCK - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_GET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_HAS' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_HAS( C_DICT_P, C_KEY_P, C_KLEN_I, C_HAS_I ) & - BIND(C,NAME='multio_grib2_dict_has_f') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - USE :: API_GENERAL_UTILS_MOD, ONLY: COPY_CPTR_TO_F_STRING - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - ! Enumerators of the dictionaries - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MARS_DICTIONARY_IDX_E - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: PAR_DICTIONARY_IDX_E - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: HEALPIX_DICTIONARY_IDX_E - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: REDUCED_GG_DICTIONARY_IDX_E - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_GG_DICTIONARY_IDX_E - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_LL_DICTIONARY_IDX_E - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: SH_DICTIONARY_IDX_E - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_SH_DICTIONARY - - ! Dictionary iterators - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_NAME2ITERATOR - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_NAME2ITERATOR - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_NAME2ITERATOR - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_NAME2ITERATOR - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_NAME2ITERATOR - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_NAME2ITERATOR - - ! Dictionary setters callbacks - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_HAS - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_HAS - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_HAS - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_HAS - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_HAS - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_HAS - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_HAS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_KEY_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_KLEN_I - INTEGER(KIND=C_INT), INTENT(INOUT) :: C_HAS_I - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - CHARACTER(LEN=C_KLEN_I) :: F_KEY - INTEGER(KIND=C_SIZE_T) :: C_KLEN_SZ - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - INTEGER(KIND=JPIB_K) :: ITERATOR - LOGICAL :: L_HAS - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_ASSOCIATED = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_KEY_LENGTH = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY = 7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR = 8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_HAS_KEY = 9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE = 666_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_KEY_P), ERRFLAG_KEY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( C_KLEN_I.LE.0, ERRFLAG_INVALID_KEY_LENGTH ) - - !> Get the size of the dictionary type - C_KLEN_SZ = INT( C_KLEN_I, KIND=C_SIZE_T ) - F_KEY = REPEAT( ' ', C_KLEN_I ) - PP_TRYCALL(ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) COPY_CPTR_TO_F_STRING( C_KEY_P, C_KLEN_SZ, F_KEY, HOOKS, TOLOWER=.TRUE. ) - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - !> Init return flag - L_HAS = .FALSE. - - !> Extract the dictionaries and set the key-value pair - SELECT CASE ( OBJ_ID ) - - CASE ( MARS_DICTIONARY_IDX_E ) - - BLOCK - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICT - MARS_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_DICT_P, MARS_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) MARS_DICTIONARY_NAME2ITERATOR( MARS_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_HAS_KEY) MARS_DICTIONARY_HAS( MARS_DICT, ITERATOR, L_HAS, HOOKS ) - MARS_DICT => NULL() - END BLOCK - - CASE ( PAR_DICTIONARY_IDX_E ) - - BLOCK - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICT - PAR_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_DICT_P, PAR_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) PAR_DICTIONARY_NAME2ITERATOR( PAR_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_HAS_KEY) PAR_DICTIONARY_HAS( PAR_DICT, ITERATOR, L_HAS, HOOKS ) - PAR_DICT => NULL() - END BLOCK - - CASE ( HEALPIX_DICTIONARY_IDX_E ) - - BLOCK - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICT - HEALPIX_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_HEALPIX_DICTIONARY( C_DICT_P, HEALPIX_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) HEALPIX_DICTIONARY_NAME2ITERATOR( HEALPIX_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_HAS_KEY) HEALPIX_DICTIONARY_HAS( HEALPIX_DICT, ITERATOR, L_HAS, HOOKS ) - HEALPIX_DICT => NULL() - END BLOCK - - CASE ( REDUCED_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REDUCED_GG_DICTIONARY( C_DICT_P, REDUCED_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REDUCED_GG_DICTIONARY_NAME2ITERATOR( REDUCED_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_HAS_KEY) REDUCED_GG_DICTIONARY_HAS( REDUCED_GG_DICT, ITERATOR, L_HAS, HOOKS ) - REDUCED_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_GG_DICTIONARY( C_DICT_P, REGULAR_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_GG_DICTIONARY_NAME2ITERATOR( REGULAR_GG_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_HAS_KEY) REGULAR_GG_DICTIONARY_HAS( REGULAR_GG_DICT, ITERATOR, L_HAS, HOOKS ) - REGULAR_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_LL_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_LL_DICTIONARY( C_DICT_P, REGULAR_LL_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) REGULAR_LL_DICTIONARY_NAME2ITERATOR( REGULAR_LL_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_HAS_KEY) REGULAR_LL_DICTIONARY_HAS( REGULAR_LL_DICT, ITERATOR, L_HAS, HOOKS ) - REGULAR_LL_DICT => NULL() - END BLOCK - - - CASE ( SH_DICTIONARY_IDX_E ) - - BLOCK - TYPE(SH_T), POINTER :: SH_DICT - SH_DICT => NULL() - ITERATOR = -1_JPIB_K - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_SH_DICTIONARY( C_DICT_P, SH_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) SH_DICTIONARY_NAME2ITERATOR( SH_DICT, F_KEY, ITERATOR, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_HAS_KEY) SH_DICTIONARY_HAS( SH_DICT, ITERATOR, L_HAS, HOOKS ) - SH_DICT => NULL() - END BLOCK - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - !> Convert bool to int - IF ( L_HAS ) THEN - C_HAS_I = 1_C_INT - ELSE - C_HAS_I = 0_C_INT - END IF - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Dictionary pointer is not associated' ) - CASE (ERRFLAG_KEY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key pointer is not associated' ) - CASE (ERRFLAG_INVALID_KEY_LENGTH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid key length' ) - CASE (ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to copy C pointer to Fortran string' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get dictionary info' ) - CASE (ERRFLAG_EXTRACT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract dictionary' ) - CASE (ERRFLAG_UNABLE_TO_CONVERT_TO_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert key name to iterator' ) - CASE (ERRFLAG_UNABLE_TO_HAS_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to check if dictionary has key' ) - CASE (ERRFLAG_UNKNOWN_DICTIONARY_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dictionary type' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_HAS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_ITERATE' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_ITERATE( C_DICT_P, C_IT_P, C_KEY_P, C_VAL_P ) & - BIND(C,NAME='multio_grib2_dict_iterate') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - USE :: API_GENERAL_UTILS_MOD, ONLY: ALLOCATE_ITERATOR - USE :: API_GENERAL_UTILS_MOD, ONLY: DEALLOCATE_ITERATOR - USE :: API_GENERAL_UTILS_MOD, ONLY: CONVERT_TO_C_STRING - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - - ! Enumerators of the dictionaries - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MARS_DICTIONARY_IDX_E - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: PAR_DICTIONARY_IDX_E - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: HEALPIX_DICTIONARY_IDX_E - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: REDUCED_GG_DICTIONARY_IDX_E - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_GG_DICTIONARY_IDX_E - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_LL_DICTIONARY_IDX_E - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: SH_DICTIONARY_IDX_E - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: OPT_DICTIONARY_IDX_E - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_SH_DICTIONARY - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_OPT_DICTIONARY - - ! Dictionary init iterators - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_INIT_ITERATOR - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_INIT_ITERATOR - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_INIT_ITERATOR - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_INIT_ITERATOR - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_INIT_ITERATOR - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_INIT_ITERATOR - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_INIT_ITERATOR - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: OPTIONS_DICTIONARY_INIT_ITERATOR - - ! Dictionary get next iterator - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_GET_NEXT_ITERATOR - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_GET_NEXT_ITERATOR - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_GET_NEXT_ITERATOR - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_GET_NEXT_ITERATOR - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_GET_NEXT_ITERATOR - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_GET_NEXT_ITERATOR - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_GET_NEXT_ITERATOR - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: OPTIONS_DICTIONARY_GET_NEXT_ITERATOR - - ! Dictionary get key as string - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_GET_KEY_AS_STRING - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_GET_KEY_AS_STRING - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_GET_KEY_AS_STRING - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_GET_KEY_AS_STRING - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_GET_KEY_AS_STRING - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_GET_KEY_AS_STRING - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_GET_KEY_AS_STRING - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: OPTIONS_DICTIONARY_GET_KEY_AS_STRING - - ! Dictionary get values as string - USE :: MARS_DICTIONARY_UTILS_MOD, ONLY: MARS_DICTIONARY_GET_VALUE_AS_STRING - USE :: PAR_DICTIONARY_UTILS_MOD, ONLY: PAR_DICTIONARY_GET_VALUE_AS_STRING - USE :: HEALPIX_DICTIONARY_UTILS_MOD, ONLY: HEALPIX_DICTIONARY_GET_VALUE_AS_STRING - USE :: REDUCED_GG_DICTIONARY_UTILS_MOD, ONLY: REDUCED_GG_DICTIONARY_GET_VALUE_AS_STRING - USE :: REGULAR_GG_DICTIONARY_UTILS_MOD, ONLY: REGULAR_GG_DICTIONARY_GET_VALUE_AS_STRING - USE :: REGULAR_LL_DICTIONARY_UTILS_MOD, ONLY: REGULAR_LL_DICTIONARY_GET_VALUE_AS_STRING - USE :: SH_DICTIONARY_UTILS_MOD, ONLY: SH_DICTIONARY_GET_VALUE_AS_STRING - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: OPTIONS_DICTIONARY_GET_VALUE_AS_STRING - - ! Dictionary getters callbacks - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_P - TYPE(C_PTR), INTENT(INOUT) :: C_IT_P - TYPE(C_PTR), INTENT(INOUT) :: C_KEY_P - TYPE(C_PTR), INTENT(INOUT) :: C_VAL_P - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - INTEGER(KIND=C_INT), POINTER, DIMENSION(:) :: F_ITERATOR - INTEGER(KIND=JPIB_K) :: ITERATOR_SIZE - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: I - INTEGER(KIND=JPIB_K) :: ITERATOR - CHARACTER(LEN=64) :: F_KEY - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - LOGICAL :: END_OF_ITERATORS - LOGICAL :: L_HAS - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_MAX_ITERATOR = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOC_FAILURE = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZE_ITERATOR = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_NEXT_IT = 7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOC_STR = 8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_KEY = 9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_VAL = 10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_TO_C_STRING = 11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE = 666_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - ! Initialize the key string - F_KEY=REPEAT(' ', LEN(F_KEY)) - - !> Extract the dictionaries and set the key-value pair - SELECT CASE ( OBJ_ID ) - - CASE ( MARS_DICTIONARY_IDX_E ) - - BLOCK - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICT - MARS_DICT => NULL() - - ! Extract dictionary - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_DICT_P, MARS_DICT, HOOKS ) - - ! Go to the next iterator or deallocate every output - IF ( .NOT.C_ASSOCIATED(C_IT_P) ) THEN - F_ITERATOR => NULL() - PP_TRYCALL(ERRFLAG_ALLOC_FAILURE) ALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - ITERATOR = F_ITERATOR(1) - PP_TRYCALL(ERRFLAG_INITIALIZE_ITERATOR) MARS_DICTIONARY_INIT_ITERATOR( MARS_DICT, ITERATOR, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - C_IT_P = C_LOC(F_ITERATOR) - END_OF_ITERATORS = .FALSE. - ELSE - CALL C_F_POINTER( C_IT_P, F_ITERATOR, [1] ) - ITERATOR = INT( F_ITERATOR(1), KIND=C_INT ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_NEXT_IT) MARS_DICTIONARY_GET_NEXT_ITERATOR( MARS_DICT, ITERATOR, END_OF_ITERATORS, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - ENDIF - - - ! If the iterator is out of bounds, then deallocate it - IF ( END_OF_ITERATORS ) THEN - F_ITERATOR(1) = 0_C_INT - PP_TRYCALL(ERRFLAG_DEALLOC_STR) DEALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - C_IT_P = C_NULL_PTR - C_KEY_P = C_NULL_PTR - C_VAL_P = C_NULL_PTR - - ELSE - - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_KEY) MARS_DICTIONARY_GET_KEY_AS_STRING( MARS_DICT, ITERATOR, F_KEY, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) MARS_DICTIONARY_GET_VALUE_AS_STRING( MARS_DICT, ITERATOR, C_VAL_P, L_HAS, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_C_STRING) CONVERT_TO_C_STRING( F_KEY, C_KEY_P, HOOKS ) - - ENDIF - - MARS_DICT => NULL() - END BLOCK - - CASE ( PAR_DICTIONARY_IDX_E ) - - BLOCK - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICT - PAR_DICT => NULL() - - ! Extract dictionary - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_DICT_P, PAR_DICT, HOOKS ) - - ! Go to the next iterator or deallocate every output - IF ( .NOT.C_ASSOCIATED(C_IT_P) ) THEN - F_ITERATOR => NULL() - PP_TRYCALL(ERRFLAG_ALLOC_FAILURE) ALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - ITERATOR = F_ITERATOR(1) - PP_TRYCALL(ERRFLAG_INITIALIZE_ITERATOR) PAR_DICTIONARY_INIT_ITERATOR( PAR_DICT, ITERATOR, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - C_IT_P = C_LOC(F_ITERATOR) - END_OF_ITERATORS = .FALSE. - ELSE - CALL C_F_POINTER( C_IT_P, F_ITERATOR, [1] ) - ITERATOR = INT( F_ITERATOR(1), KIND=C_INT ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_NEXT_IT) PAR_DICTIONARY_GET_NEXT_ITERATOR( PAR_DICT, ITERATOR, END_OF_ITERATORS, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - ENDIF - - - ! If the iterator is out of bounds, then deallocate it - IF ( END_OF_ITERATORS ) THEN - F_ITERATOR(1) = 0_C_INT - PP_TRYCALL(ERRFLAG_DEALLOC_STR) DEALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - C_IT_P = C_NULL_PTR - C_KEY_P = C_NULL_PTR - C_VAL_P = C_NULL_PTR - - ELSE - - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_KEY) PAR_DICTIONARY_GET_KEY_AS_STRING( PAR_DICT, ITERATOR, F_KEY, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) PAR_DICTIONARY_GET_VALUE_AS_STRING( PAR_DICT, ITERATOR, C_VAL_P, L_HAS, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_C_STRING) CONVERT_TO_C_STRING( F_KEY, C_KEY_P, HOOKS ) - - ENDIF - - PAR_DICT => NULL() - END BLOCK - - CASE ( HEALPIX_DICTIONARY_IDX_E ) - - BLOCK - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICT - HEALPIX_DICT => NULL() - - ! Extract dictionary - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_HEALPIX_DICTIONARY( C_DICT_P, HEALPIX_DICT, HOOKS ) - - ! Go to the next iterator or deallocate every output - IF ( .NOT.C_ASSOCIATED(C_IT_P) ) THEN - F_ITERATOR => NULL() - PP_TRYCALL(ERRFLAG_ALLOC_FAILURE) ALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - ITERATOR = F_ITERATOR(1) - PP_TRYCALL(ERRFLAG_INITIALIZE_ITERATOR) HEALPIX_DICTIONARY_INIT_ITERATOR( HEALPIX_DICT, ITERATOR, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - C_IT_P = C_LOC(F_ITERATOR) - END_OF_ITERATORS = .FALSE. - ELSE - CALL C_F_POINTER( C_IT_P, F_ITERATOR, [1] ) - ITERATOR = INT( F_ITERATOR(1), KIND=C_INT ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_NEXT_IT) HEALPIX_DICTIONARY_GET_NEXT_ITERATOR( HEALPIX_DICT, ITERATOR, END_OF_ITERATORS, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - ENDIF - - - ! If the iterator is out of bounds, then deallocate it - IF ( END_OF_ITERATORS ) THEN - F_ITERATOR(1) = 0_C_INT - PP_TRYCALL(ERRFLAG_DEALLOC_STR) DEALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - C_IT_P = C_NULL_PTR - C_KEY_P = C_NULL_PTR - C_VAL_P = C_NULL_PTR - - ELSE - - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_KEY) HEALPIX_DICTIONARY_GET_KEY_AS_STRING( HEALPIX_DICT, ITERATOR, F_KEY, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) HEALPIX_DICTIONARY_GET_VALUE_AS_STRING( HEALPIX_DICT, ITERATOR, C_VAL_P, L_HAS, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_C_STRING) CONVERT_TO_C_STRING( F_KEY, C_KEY_P, HOOKS ) - - ENDIF - - HEALPIX_DICT => NULL() - END BLOCK - - CASE ( REDUCED_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - - ! Extract dictionary - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REDUCED_GG_DICTIONARY( C_DICT_P, REDUCED_GG_DICT, HOOKS ) - - ! Go to the next iterator or deallocate every output - IF ( .NOT.C_ASSOCIATED(C_IT_P) ) THEN - F_ITERATOR => NULL() - PP_TRYCALL(ERRFLAG_ALLOC_FAILURE) ALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - ITERATOR = F_ITERATOR(1) - PP_TRYCALL(ERRFLAG_INITIALIZE_ITERATOR) REDUCED_GG_DICTIONARY_INIT_ITERATOR( REDUCED_GG_DICT, ITERATOR, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - C_IT_P = C_LOC(F_ITERATOR) - END_OF_ITERATORS = .FALSE. - ELSE - CALL C_F_POINTER( C_IT_P, F_ITERATOR, [1] ) - ITERATOR = INT( F_ITERATOR(1), KIND=C_INT ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_NEXT_IT) REDUCED_GG_DICTIONARY_GET_NEXT_ITERATOR( REDUCED_GG_DICT, ITERATOR, END_OF_ITERATORS, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - ENDIF - - - ! If the iterator is out of bounds, then deallocate it - IF ( END_OF_ITERATORS ) THEN - F_ITERATOR(1) = 0_C_INT - PP_TRYCALL(ERRFLAG_DEALLOC_STR) DEALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - C_IT_P = C_NULL_PTR - C_KEY_P = C_NULL_PTR - C_VAL_P = C_NULL_PTR - - ELSE - - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_KEY) REDUCED_GG_DICTIONARY_GET_KEY_AS_STRING( REDUCED_GG_DICT, ITERATOR, F_KEY, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) REDUCED_GG_DICTIONARY_GET_VALUE_AS_STRING( REDUCED_GG_DICT, ITERATOR, C_VAL_P, L_HAS, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_C_STRING) CONVERT_TO_C_STRING( F_KEY, C_KEY_P, HOOKS ) - - ENDIF - - REDUCED_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - - ! Extract dictionary - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_GG_DICTIONARY( C_DICT_P, REGULAR_GG_DICT, HOOKS ) - - ! Go to the next iterator or deallocate every output - IF ( .NOT.C_ASSOCIATED(C_IT_P) ) THEN - F_ITERATOR => NULL() - PP_TRYCALL(ERRFLAG_ALLOC_FAILURE) ALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - ITERATOR = F_ITERATOR(1) - PP_TRYCALL(ERRFLAG_INITIALIZE_ITERATOR) REGULAR_GG_DICTIONARY_INIT_ITERATOR( REGULAR_GG_DICT, ITERATOR, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - C_IT_P = C_LOC(F_ITERATOR) - END_OF_ITERATORS = .FALSE. - ELSE - CALL C_F_POINTER( C_IT_P, F_ITERATOR, [1] ) - ITERATOR = INT( F_ITERATOR(1), KIND=C_INT ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_NEXT_IT) REGULAR_GG_DICTIONARY_GET_NEXT_ITERATOR( REGULAR_GG_DICT, ITERATOR, END_OF_ITERATORS, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - ENDIF - - - ! If the iterator is out of bounds, then deallocate it - IF ( END_OF_ITERATORS ) THEN - F_ITERATOR(1) = 0_C_INT - PP_TRYCALL(ERRFLAG_DEALLOC_STR) DEALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - C_IT_P = C_NULL_PTR - C_KEY_P = C_NULL_PTR - C_VAL_P = C_NULL_PTR - - ELSE - - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_KEY) REGULAR_GG_DICTIONARY_GET_KEY_AS_STRING( REGULAR_GG_DICT, ITERATOR, F_KEY, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) REGULAR_GG_DICTIONARY_GET_VALUE_AS_STRING( REGULAR_GG_DICT, ITERATOR, C_VAL_P, L_HAS, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_C_STRING) CONVERT_TO_C_STRING( F_KEY, C_KEY_P, HOOKS ) - - ENDIF - - REGULAR_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_LL_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - - ! Extract dictionary - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_LL_DICTIONARY( C_DICT_P, REGULAR_LL_DICT, HOOKS ) - - ! Go to the next iterator or deallocate every output - IF ( .NOT.C_ASSOCIATED(C_IT_P) ) THEN - F_ITERATOR => NULL() - PP_TRYCALL(ERRFLAG_ALLOC_FAILURE) ALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - ITERATOR = F_ITERATOR(1) - PP_TRYCALL(ERRFLAG_INITIALIZE_ITERATOR) REGULAR_LL_DICTIONARY_INIT_ITERATOR( REGULAR_LL_DICT, ITERATOR, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - C_IT_P = C_LOC(F_ITERATOR) - END_OF_ITERATORS = .FALSE. - ELSE - CALL C_F_POINTER( C_IT_P, F_ITERATOR, [1] ) - ITERATOR = INT( F_ITERATOR(1), KIND=C_INT ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_NEXT_IT) REGULAR_LL_DICTIONARY_GET_NEXT_ITERATOR( REGULAR_LL_DICT, ITERATOR, END_OF_ITERATORS, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - ENDIF - - - ! If the iterator is out of bounds, then deallocate it - IF ( END_OF_ITERATORS ) THEN - F_ITERATOR(1) = 0_C_INT - PP_TRYCALL(ERRFLAG_DEALLOC_STR) DEALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - C_IT_P = C_NULL_PTR - C_KEY_P = C_NULL_PTR - C_VAL_P = C_NULL_PTR - - ELSE - - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_KEY) REGULAR_LL_DICTIONARY_GET_KEY_AS_STRING( REGULAR_LL_DICT, ITERATOR, F_KEY, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) REGULAR_LL_DICTIONARY_GET_VALUE_AS_STRING( REGULAR_LL_DICT, ITERATOR, C_VAL_P, L_HAS, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_C_STRING) CONVERT_TO_C_STRING( F_KEY, C_KEY_P, HOOKS ) - - ENDIF - - REGULAR_LL_DICT => NULL() - END BLOCK - - - CASE ( SH_DICTIONARY_IDX_E ) - - BLOCK - TYPE(SH_T), POINTER :: SH_DICT - SH_DICT => NULL() - - ! Extract dictionary - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_SH_DICTIONARY( C_DICT_P, SH_DICT, HOOKS ) - - ! Go to the next iterator or deallocate every output - IF ( .NOT.C_ASSOCIATED(C_IT_P) ) THEN - F_ITERATOR => NULL() - PP_TRYCALL(ERRFLAG_ALLOC_FAILURE) ALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - ITERATOR = F_ITERATOR(1) - PP_TRYCALL(ERRFLAG_INITIALIZE_ITERATOR) SH_DICTIONARY_INIT_ITERATOR( SH_DICT, ITERATOR, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - C_IT_P = C_LOC(F_ITERATOR) - END_OF_ITERATORS = .FALSE. - ELSE - CALL C_F_POINTER( C_IT_P, F_ITERATOR, [1] ) - ITERATOR = INT( F_ITERATOR(1), KIND=C_INT ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_NEXT_IT) SH_DICTIONARY_GET_NEXT_ITERATOR( SH_DICT, ITERATOR, END_OF_ITERATORS, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - ENDIF - - - ! If the iterator is out of bounds, then deallocate it - IF ( END_OF_ITERATORS ) THEN - F_ITERATOR(1) = 0_C_INT - PP_TRYCALL(ERRFLAG_DEALLOC_STR) DEALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - C_IT_P = C_NULL_PTR - C_KEY_P = C_NULL_PTR - C_VAL_P = C_NULL_PTR - - ELSE - - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_KEY) SH_DICTIONARY_GET_KEY_AS_STRING( SH_DICT, ITERATOR, F_KEY, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) SH_DICTIONARY_GET_VALUE_AS_STRING( SH_DICT, ITERATOR, C_VAL_P, L_HAS, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_C_STRING) CONVERT_TO_C_STRING( F_KEY, C_KEY_P, HOOKS ) - - ENDIF - - SH_DICT => NULL() - END BLOCK - - CASE ( OPT_DICTIONARY_IDX_E ) - - BLOCK - - TYPE(API_OPTIONS_T), POINTER :: OPT_DICT - OPT_DICT => NULL() - - ! Extract dictionary - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_OPT_DICTIONARY( C_DICT_P, OPT_DICT, HOOKS ) - - ! Go to the next iterator or deallocate every output - IF ( .NOT.C_ASSOCIATED(C_IT_P) ) THEN - F_ITERATOR => NULL() - PP_TRYCALL(ERRFLAG_ALLOC_FAILURE) ALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - ITERATOR = F_ITERATOR(1) - PP_TRYCALL(ERRFLAG_INITIALIZE_ITERATOR) OPTIONS_DICTIONARY_INIT_ITERATOR( OPT_DICT, ITERATOR, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - C_IT_P = C_LOC(F_ITERATOR) - END_OF_ITERATORS = .FALSE. - ELSE - CALL C_F_POINTER( C_IT_P, F_ITERATOR, [1] ) - ITERATOR = INT( F_ITERATOR(1), KIND=C_INT ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_NEXT_IT) OPTIONS_DICTIONARY_GET_NEXT_ITERATOR( OPT_DICT, ITERATOR, END_OF_ITERATORS, HOOKS ) - F_ITERATOR(1) = INT(ITERATOR,KIND=C_INT) - ENDIF - - ! If the iterator is out of bounds, then deallocate it - IF ( END_OF_ITERATORS ) THEN - F_ITERATOR(1) = 0_C_INT - PP_TRYCALL(ERRFLAG_DEALLOC_STR) DEALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - C_IT_P = C_NULL_PTR - C_KEY_P = C_NULL_PTR - C_VAL_P = C_NULL_PTR - - ELSE - - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_KEY) OPTIONS_DICTIONARY_GET_KEY_AS_STRING( OPT_DICT, ITERATOR, F_KEY, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_VAL) OPTIONS_DICTIONARY_GET_VALUE_AS_STRING( OPT_DICT, ITERATOR, C_VAL_P, L_HAS, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_C_STRING) CONVERT_TO_C_STRING( F_KEY, C_KEY_P, HOOKS ) - - ENDIF - - OPT_DICT => NULL() - END BLOCK - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The provided dictionary pointer is not associated.' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get dictionary info.' ) - CASE (ERRFLAG_EXTRACT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract the dictionary.' ) - CASE (ERRFLAG_UNABLE_TO_GET_MAX_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get the maximum iterator value.' ) - CASE (ERRFLAG_ALLOC_FAILURE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate memory for the iterator.' ) - CASE (ERRFLAG_INITIALIZE_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to initialize the iterator.' ) - CASE (ERRFLAG_UNABLE_TO_GET_NEXT_IT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get the next iterator value.' ) - CASE (ERRFLAG_DEALLOC_STR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to deallocate the iterator.' ) - CASE (ERRFLAG_UNABLE_TO_GET_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get the key as string from the dictionary.' ) - CASE (ERRFLAG_UNABLE_TO_GET_VAL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get the value as string from the dictionary.' ) - CASE (ERRFLAG_CONVERT_TO_C_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert Fortran string to C string.' ) - CASE (ERRFLAG_UNKNOWN_DICTIONARY_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dictionary type.' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_ITERATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_DESTROY_ITERATEOR' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_DESTROY_ITERATEOR( DICT, IT ) & - BIND(C,NAME='multio_grib2_dict_destroy_iterator') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_GENERAL_UTILS_MOD, ONLY: DEALLOCATE_ITERATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: DICT - TYPE(C_PTR), INTENT(INOUT) :: IT - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - INTEGER(KIND=C_INT), POINTER, DIMENSION(:) :: F_ITERATOR - TYPE(HOOKS_T) :: HOOKS - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOC_ITERATOR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - ! If needed free memory for the iterator - IF ( C_ASSOCIATED(IT) ) THEN - CALL C_F_POINTER( IT, F_ITERATOR, [1] ) - PP_TRYCALL(ERRFLAG_DEALLOC_ITERATOR) DEALLOCATE_ITERATOR( F_ITERATOR, HOOKS ) - IT = C_NULL_PTR - ENDIF - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DEALLOC_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to deallocate the iterator.' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_DESTROY_ITERATEOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_TO_YAML' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_TO_YAML( C_DICT_P, C_OUTSTREAM_P, C_LEN_I ) & - BIND(C,NAME='multio_grib2_dict_to_yaml_f') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: OUTPUT_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - USE :: API_GENERAL_UTILS_MOD, ONLY: COPY_CPTR_TO_F_STRING - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - - ! Enumerators of the dictionaries - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MARS_DICTIONARY_IDX_E - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: PAR_DICTIONARY_IDX_E - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: HEALPIX_DICTIONARY_IDX_E - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: REDUCED_GG_DICTIONARY_IDX_E - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_GG_DICTIONARY_IDX_E - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_LL_DICTIONARY_IDX_E - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: SH_DICTIONARY_IDX_E - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: OPT_DICTIONARY_IDX_E - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_SH_DICTIONARY - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_OPT_DICTIONARY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_OUTSTREAM_P - INTEGER(KIND=C_INT), VALUE, INTENT(IN) :: C_LEN_I - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - INTEGER(KIND=C_SIZE_T) :: C_KLEN_SZ - CHARACTER(LEN=32) :: F_STREAM - INTEGER(KIND=JPIB_K) :: WRITE_STAT - INTEGER(KIND=JPIB_K) :: UNIT - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_OUTSTREAM_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_OUTSTREAM_LENGTH=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_OPEN_UNIT=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_YAML=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE=666_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_OUTSTREAM_P), ERRFLAG_OUTSTREAM_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( C_LEN_I.LE.0, ERRFLAG_INVALID_OUTSTREAM_LENGTH ) - - !> Get the size of the dictionary type - C_KLEN_SZ = INT( C_LEN_I, KIND=C_SIZE_T ) - F_STREAM = REPEAT( ' ', 32 ) - PP_TRYCALL(ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) COPY_CPTR_TO_F_STRING( C_OUTSTREAM_P, C_KLEN_SZ, F_STREAM, HOOKS, TOLOWER=.TRUE. ) - - ! Open the stream - SELECT CASE( TRIM(ADJUSTL(F_STREAM)) ) - CASE ('stderr') - WRITE(ERROR_UNIT, *) "TO_YAML: " - UNIT = ERROR_UNIT - CASE ('stdout') - WRITE(OUTPUT_UNIT, *) "TO_YAML: " - UNIT = OUTPUT_UNIT - CASE default - OPEN(NEWUNIT=UNIT, FILE=F_STREAM, ACTION="WRITE", IOSTAT=WRITE_STAT) - - PP_DEBUG_CRITICAL_COND_THROW( WRITE_STAT .NE. 0, ERRFLAG_OPEN_UNIT ) - END SELECT - - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - - !> Extract the dictionaries and set the key-value pair - SELECT CASE ( OBJ_ID ) - - CASE ( MARS_DICTIONARY_IDX_E ) - - BLOCK - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICT - MARS_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_DICT_P, MARS_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_WRITE_YAML) MARS_DICT%WRITE_TO_YAML(UNIT, 0_JPIB_K, HOOKS) - MARS_DICT => NULL() - END BLOCK - - CASE ( PAR_DICTIONARY_IDX_E ) - - BLOCK - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICT - PAR_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_DICT_P, PAR_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_WRITE_YAML) PAR_DICT%WRITE_TO_YAML(UNIT, 0_JPIB_K, HOOKS) - PAR_DICT => NULL() - END BLOCK - - CASE ( HEALPIX_DICTIONARY_IDX_E ) - - BLOCK - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICT - HEALPIX_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_HEALPIX_DICTIONARY( C_DICT_P, HEALPIX_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_WRITE_YAML) HEALPIX_DICT%WRITE_TO_YAML(UNIT, 0_JPIB_K, HOOKS) - HEALPIX_DICT => NULL() - END BLOCK - - CASE ( REDUCED_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REDUCED_GG_DICTIONARY( C_DICT_P, REDUCED_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_WRITE_YAML) REDUCED_GG_DICT%WRITE_TO_YAML(UNIT, 0_JPIB_K, HOOKS) - REDUCED_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_GG_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_GG_DICTIONARY( C_DICT_P, REGULAR_GG_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_WRITE_YAML) REGULAR_GG_DICT%WRITE_TO_YAML(UNIT, 0_JPIB_K, HOOKS) - REGULAR_GG_DICT => NULL() - END BLOCK - - CASE ( REGULAR_LL_DICTIONARY_IDX_E ) - - BLOCK - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_LL_DICTIONARY( C_DICT_P, REGULAR_LL_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_WRITE_YAML) REGULAR_LL_DICT%WRITE_TO_YAML(UNIT, 0_JPIB_K, HOOKS) - REGULAR_LL_DICT => NULL() - END BLOCK - - - CASE ( SH_DICTIONARY_IDX_E ) - - BLOCK - TYPE(SH_T), POINTER :: SH_DICT - SH_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_SH_DICTIONARY( C_DICT_P, SH_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_WRITE_YAML) SH_DICT%WRITE_TO_YAML(UNIT, 0_JPIB_K, HOOKS) - SH_DICT => NULL() - END BLOCK - - ! CASE ( OPT_DICTIONARY_IDX_E ) - - ! BLOCK - ! TYPE(API_OPTIONS_T), POINTER :: OPT_DICT - ! OPT_DICT => NULL() - ! PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_OPTIONS_DICTIONARY( F_DICT, OPT_DICT, HOOKS ) - ! OPT_DICT => NULL() - ! END BLOCK - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - - ! Close the stream - SELECT CASE( TRIM(ADJUSTL(F_STREAM)) ) - CASE ('stderr') - CASE ('stdout') - CASE DEFAULT - CLOSE(UNIT=UNIT) - END SELECT - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The provided dictionary pointer is not associated.' ) - CASE (ERRFLAG_OUTSTREAM_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The provided output stream pointer is not associated.' ) - CASE (ERRFLAG_INVALID_OUTSTREAM_LENGTH) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The provided output stream length is invalid.' ) - CASE (ERRFLAG_UABLE_TO_COPY_CPTR_TO_F_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to copy C pointer to Fortran string.' ) - CASE (ERRFLAG_OPEN_UNIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to open the output stream.' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get dictionary info.' ) - CASE (ERRFLAG_EXTRACT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract the dictionary.' ) - CASE (ERRFLAG_WRITE_YAML) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to write the dictionary to YAML.' ) - CASE (ERRFLAG_UNKNOWN_DICTIONARY_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dictionary type.' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_TO_YAML -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_DICT_TO_JSON' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_DICT_TO_JSON( C_DICT_P, C_VAL_P ) & - BIND(C,NAME='multio_grib2_dict_to_json_f') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_GENERAL_UTILS_MOD, ONLY: CONVERT_TO_C_STRING - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - - ! Enumerators of the dictionaries - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: MARS_DICTIONARY_IDX_E - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: PAR_DICTIONARY_IDX_E - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_DICT_P - TYPE(C_PTR), INTENT(INOUT) :: C_VAL_P - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - CHARACTER(LEN=:), ALLOCATABLE :: JSON - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DICTIONARY_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PAR_TO_JSON=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_STRING=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY_TYPE=666_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_DICT_P), ERRFLAG_DICTIONARY_NOT_ASSOCIATED ) - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - - !> Extract the dictionaries and set the key-value pair - SELECT CASE ( OBJ_ID ) - - CASE ( MARS_DICTIONARY_IDX_E ) - - BLOCK - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICT - MARS_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_DICT_P, MARS_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MARS_DICT%TO_JSON( JSON, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_STRING) CONVERT_TO_C_STRING(JSON, C_VAL_P, HOOKS ) - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON ) - END IF - MARS_DICT => NULL() - END BLOCK - - CASE ( PAR_DICTIONARY_IDX_E ) - - BLOCK - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICT - PAR_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_DICT_P, PAR_DICT, HOOKS ) - PP_TRYCALL(ERRFLAG_PAR_TO_JSON) PAR_DICT%TO_JSON( JSON, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_STRING) CONVERT_TO_C_STRING(JSON, C_VAL_P, HOOKS ) - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON ) - END IF - PAR_DICT => NULL() - END BLOCK - - CASE DEFAULT - - ! Unknown dictionary type - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY_TYPE ) - - END SELECT - - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'The provided dictionary pointer is not associated.' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get dictionary info.' ) - CASE (ERRFLAG_EXTRACT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract the dictionary.' ) - CASE (ERRFLAG_MARS_TO_JSON) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert MARS dictionary to JSON.' ) - CASE (ERRFLAG_PAR_TO_JSON) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert PAR dictionary to JSON.' ) - CASE (ERRFLAG_CONVERT_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert Fortran string to C string.' ) - CASE (ERRFLAG_UNKNOWN_DICTIONARY_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dictionary type.' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_DICT_TO_JSON -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -END MODULE DICTIONARIES_API_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/healpix_dictionary_utils_mod.F90 b/src/multiom/encoders/api/dictionaries/healpix_dictionary_utils_mod.F90 deleted file mode 100644 index dcdbf43bf..000000000 --- a/src/multiom/encoders/api/dictionaries/healpix_dictionary_utils_mod.F90 +++ /dev/null @@ -1,1401 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'hEALPIX_DICTIONARY_UTILS_MOD.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'HEALPIX_DICTIONARY_UTILS_MOD' -MODULE HEALPIX_DICTIONARY_UTILS_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -!> Enumerators for the iterator -INTEGER(KIND=JPIB_K), PARAMETER :: HEALPIX_ITERATOR_NSIDE = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: HEALPIX_ITERATOR_ORDERING_CONVENTION = 2_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: HEALPIX_ITERATOR_LONGITUDE_OF_FIRST_GRID_POINT_IN_DEGREES = 3_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: HEALPIX_ITERATOR_UNDEF = 4_JPIB_K - - -! Whitelist of public symbols -PUBLIC :: HEALPIX_DICTIONARY_MAX_ITERATOR -PUBLIC :: HEALPIX_DICTIONARY_INIT_ITERATOR -PUBLIC :: HEALPIX_DICTIONARY_NAME2ITERATOR -PUBLIC :: HEALPIX_DICTIONARY_GET_NEXT_ITERATOR -PUBLIC :: HEALPIX_DICTIONARY_HAS -PUBLIC :: HEALPIX_DICTIONARY_GET_KEY_AS_STRING -PUBLIC :: HEALPIX_DICTIONARY_GET_VALUE_AS_STRING - -PUBLIC :: HEALPIX_DICTIONARY_SET_VALUE_FROM_STRING -PUBLIC :: HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64 -PUBLIC :: HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64 -PUBLIC :: HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -PUBLIC :: HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_MAX_ITERATOR' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_MAX_ITERATOR( HEALPIX_DICTIONARY, MAX_ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(IN) :: HEALPIX_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: MAX_ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - MAX_ITERATOR = HEALPIX_ITERATOR_UNDEF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_MAX_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_INIT_ITERATOR' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_INIT_ITERATOR( HEALPIX_DICTIONARY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(IN) :: HEALPIX_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - ITERATOR = 1_JPIB_K - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_INIT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_GET_NEXT_ITERATOR' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_GET_NEXT_ITERATOR( HEALPIX_DICTIONARY, ITERATOR, END_OF_ITERATORS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(IN) :: HEALPIX_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: END_OF_ITERATORS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - LOGICAL :: HAS_KEY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HAS_ITERATOR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - HAS_KEY = .FALSE. - END_OF_ITERATORS = .FALSE. - DO WHILE(.NOT.HAS_KEY) - - ! Get the next iterator - ITERATOR = ITERATOR + 1 - - ! Check if the iterator is the last one - IF ( ITERATOR .EQ. HEALPIX_ITERATOR_UNDEF ) THEN - END_OF_ITERATORS = .TRUE. - HAS_KEY = .TRUE. - ELSE - PP_TRYCALL(ERRFLAG_HAS_ITERATOR) HEALPIX_DICTIONARY_HAS( HEALPIX_DICTIONARY, ITERATOR, HAS_KEY, HOOKS ) - ENDIF - - ENDDO - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_HAS_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to check if the iterator exists' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_GET_NEXT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_NAME2ITERATOR' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_NAME2ITERATOR( HEALPIX_DICTIONARY, KEY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(IN) :: HEALPIX_DICTIONARY - CHARACTER(LEN=*), INTENT(IN) :: KEY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=LEN(KEY)) :: KEY_LOW - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_HEALPIX_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Convert to string to lowercase - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( KEY, KEY_LOW, HOOKS ) - - ! Get the iterator from the key name - SELECT CASE ( KEY_LOW ) - - CASE ( 'nside' ) - ITERATOR = HEALPIX_ITERATOR_NSIDE - - CASE ( 'ordering-convention', 'orderingConvention' ) - ITERATOR = HEALPIX_ITERATOR_ORDERING_CONVENTION - - CASE ( 'longitudeOfFirstGridPointInDegrees', 'longitude-of-first-grid-point-in-degrees' ) - ITERATOR = HEALPIX_ITERATOR_LONGITUDE_OF_FIRST_GRID_POINT_IN_DEGREES - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_HEALPIX_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_CONVERT_LC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert to lowercase' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'key: '//TRIM(ADJUSTL(KEY)) ) - CASE(ERRFLAG_NO_HEALPIX_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'No HEALPIX key found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_NAME2ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_HAS' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_HAS( HEALPIX_DICTIONARY, ITERATOR, HAS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(IN) :: HEALPIX_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_HEALPIX_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( HEALPIX_ITERATOR_NSIDE ) - HAS = .TRUE. - - CASE ( HEALPIX_ITERATOR_ORDERING_CONVENTION ) - HAS = .TRUE. - - CASE ( HEALPIX_ITERATOR_LONGITUDE_OF_FIRST_GRID_POINT_IN_DEGREES ) - HAS = .TRUE. - - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_HEALPIX_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_HEALPIX_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_HAS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_GET_KEY_AS_STRING' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_GET_KEY_AS_STRING( HEALPIX_DICTIONARY, ITERATOR, KEY, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(IN) :: HEALPIX_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=64), INTENT(OUT) :: KEY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_HEALPIX_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_ENUM_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize the value - KEY = REPEAT( ' ', LEN(KEY) ) - - SELECT CASE ( ITERATOR ) - - CASE ( HEALPIX_ITERATOR_NSIDE ) - KEY = 'nside' - - CASE ( HEALPIX_ITERATOR_ORDERING_CONVENTION ) - KEY = 'ordering-convention' - - CASE ( HEALPIX_ITERATOR_LONGITUDE_OF_FIRST_GRID_POINT_IN_DEGREES ) - KEY = 'longitude-of-first-grid-point-in-degrees' - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_HEALPIX_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_HEALPIX_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_ENUM_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_GET_KEY_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_GET_VALUE_AS_STRING' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_GET_VALUE_AS_STRING( HEALPIX_DICTIONARY, ITERATOR, VALUE, HAS, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_GENERAL_UTILS_MOD, ONLY: CONVERT_TO_C_STRING - USE :: ENUMERATORS_MOD, ONLY: IORDERING_CONVENTION2CORDERING_CONVENTION - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(IN) :: HEALPIX_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - TYPE(C_PTR), INTENT(OUT) :: VALUE - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=16) :: VALUE_STR - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_HEALPIX_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_TO_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( HEALPIX_ITERATOR_NSIDE ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( HEALPIX_DICTIONARY%NSIDE, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( HEALPIX_ITERATOR_ORDERING_CONVENTION ) - VALUE_STR = REPEAT( ' ', LEN(VALUE_STR) ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) IORDERING_CONVENTION2CORDERING_CONVENTION( HEALPIX_DICTIONARY%ORDERING_CONVENTION, VALUE_STR, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( TRIM(ADJUSTL(VALUE_STR)), VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( HEALPIX_ITERATOR_LONGITUDE_OF_FIRST_GRID_POINT_IN_DEGREES ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( HEALPIX_DICTIONARY%LONGITUDE_OF_FIRST_GRID_POINT_IN_DEGREES, VALUE, HOOKS ) - HAS = .TRUE. - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_HEALPIX_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_HEALPIX_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_TO_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_GET_VALUE_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_SET_VALUE_FROM_STRING' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_SET_VALUE_FROM_STRING( HEALPIX_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: CINT2IINT - USE :: ENUMERATORS_MOD, ONLY: CFLOAT2IFLOAT - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_REAL_ARRAY - USE :: ENUMERATORS_MOD, ONLY: CORDERING_CONVENTION2IORDERING_CONVENTION - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(INOUT) :: HEALPIX_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=*), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ITEMP - REAL(KIND=JPRD_K) :: FTEMP - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - REAL(KIND=JPRD_K), DIMENSION(:), ALLOCATABLE :: F_ARR - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_HEALPIX_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_HEALPIX_TO_ENUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( HEALPIX_ITERATOR_NSIDE ) - PP_TRYCALL(ERRFLAG_CONVERT_HEALPIX_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - HEALPIX_DICTIONARY%NSIDE=ITEMP - - CASE ( HEALPIX_ITERATOR_ORDERING_CONVENTION ) - PP_TRYCALL(ERRFLAG_CONVERT_HEALPIX_TO_ENUM) CORDERING_CONVENTION2IORDERING_CONVENTION(VALUE, ITEMP, HOOKS) - HEALPIX_DICTIONARY%ORDERING_CONVENTION=ITEMP - - CASE ( HEALPIX_ITERATOR_LONGITUDE_OF_FIRST_GRID_POINT_IN_DEGREES ) - PP_TRYCALL(ERRFLAG_CONVERT_HEALPIX_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - HEALPIX_DICTIONARY%LONGITUDE_OF_FIRST_GRID_POINT_IN_DEGREES=ITEMP - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_HEALPIX_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_HEALPIX_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE( ERRFLAG_CONVERT_HEALPIX_TO_ENUM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert HEALPIX to enumerator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_SET_VALUE_FROM_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64( HEALPIX_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(INOUT) :: HEALPIX_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_HEALPIX_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( HEALPIX_ITERATOR_NSIDE ) - HEALPIX_DICTIONARY%NSIDE = VALUE - - CASE ( HEALPIX_ITERATOR_LONGITUDE_OF_FIRST_GRID_POINT_IN_DEGREES ) - HEALPIX_DICTIONARY%LONGITUDE_OF_FIRST_GRID_POINT_IN_DEGREES = VALUE - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_HEALPIX_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_HEALPIX_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64( HEALPIX_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(INOUT) :: HEALPIX_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_HEALPIX_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_HEALPIX_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_HEALPIX_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( HEALPIX_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(INOUT) :: HEALPIX_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_HEALPIX_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_HEALPIX_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_HEALPIX_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY' -PP_THREAD_SAFE FUNCTION HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( HEALPIX_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(HEALPIX_T), INTENT(INOUT) :: HEALPIX_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_HEALPIX_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_HEALPIX_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_HEALPIX_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION HEALPIX_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE HEALPIX_DICTIONARY_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/healpix_dictionary_wrapper_mod.F90 b/src/multiom/encoders/api/dictionaries/healpix_dictionary_wrapper_mod.F90 deleted file mode 100644 index 69bec5639..000000000 --- a/src/multiom/encoders/api/dictionaries/healpix_dictionary_wrapper_mod.F90 +++ /dev/null @@ -1,801 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'healpix_dictionary_wrapper_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'HEALPIX_DICTIONARY_WRAPPER_MOD' -MODULE HEALPIX_DICTIONARY_WRAPPER_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - -IMPLICIT NONE - - !> Default module visibnility - PRIVATE - - !> HEALPIX_DICTIONARY index used used to identify the healpix_dictionary wrapper - INTEGER(KIND=JPIB_K), PARAMETER :: HEALPIX_DICTIONARY_IDX_E = 6_JPIB_K - - !> Class used as a wrapper for the healpix_dictionary - TYPE :: HEALPIX_DICTIONARY_CONTAINER_T - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICTIONARY => NULL() - END TYPE - - !> Whitelist of public symbols - PUBLIC :: HEALPIX_DICTIONARY_IDX_E - - PUBLIC :: MAKE_HEALPIX_DICTIONARY - PUBLIC :: FREE_HEALPIX_DICTIONARY - PUBLIC :: EXTRACT_HEALPIX_DICTIONARY - -CONTAINS - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_HEALPIX_DICTIONARY' -PP_THREAD_SAFE FUNCTION MAKE_HEALPIX_DICTIONARY( WRAPPED_HEALPIX_DICTIONARY, & -& HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_HEALPIX_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICTIONARY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HEALPIX_DICTIONARY_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CREATE_HEALPIX_DICTIONARY=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZE_HEALPIX_DICTIONARY=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INJECT_CHECKSUM=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_HEALPIX_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED ) - - !> Initialize the healpix_dictionary - HEALPIX_DICTIONARY => NULL() - - !> Create the healpix_dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_CREATE_HEALPIX_DICTIONARY) CREATE_HEALPIX_DICTIONARY( & -& WRAPPED_HEALPIX_DICTIONARY, HEALPIX_DICTIONARY, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(HEALPIX_DICTIONARY), ERRFLAG_HEALPIX_DICTIONARY_NOT_ASSOCIATED ) - - ! Initialize the healpix_dictionary - ! PP_TRYCALL(ERRFLAG_INITIALIZE_HEALPIX_DICTIONARY) HEALPIX_DICTIONARY%INIT( HOOKS ) - - ! Inject checksum - PP_TRYCALL(ERRFLAG_INJECT_CHECKSUM) INJECT_CHECKSUM_HEALPIX_DICTIONARY( WRAPPED_HEALPIX_DICTIONARY, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'HEALPIX_DICTIONARY already associated at function entry' ) - CASE (ERRFLAG_HEALPIX_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'HEALPIX_DICTIONARY not associated after allocation' ) - CASE (ERRFLAG_UNABLE_TO_CREATE_HEALPIX_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract healpix_dictionary' ) - CASE (ERRFLAG_INITIALIZE_HEALPIX_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to initialize healpix_dictionary' ) - CASE (ERRFLAG_INJECT_CHECKSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_HEALPIX_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'FREE_HEALPIX_DICTIONARY' -PP_THREAD_SAFE FUNCTION FREE_HEALPIX_DICTIONARY( WRAPPED_HEALPIX_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_FREE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_HEALPIX_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICTIONARY - TYPE(HEALPIX_DICTIONARY_CONTAINER_T) :: HEALPIX_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: HEALPIX_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(HEALPIX_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_HEALPIX_DICTIONARY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HEALPIX_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_HEALPIX_DICTIONARY=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE_HEALPIX_DICTIONARY=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_WRAPPER=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_HEALPIX_DICTIONARY=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_HEALPIX_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_HEALPIX_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. HEALPIX_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - HEALPIX_DICTIONARY_CONTAINER = TRANSFER( BUFFER, HEALPIX_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(HEALPIX_DICTIONARY_CONTAINER%HEALPIX_DICTIONARY), ERRFLAG_HEALPIX_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the healpix_dictionary pointer - HEALPIX_DICTIONARY => HEALPIX_DICTIONARY_CONTAINER%HEALPIX_DICTIONARY - - ! Print the healpix_dictionary to be freed - !! MIVAL: This is a debug print statement that should be enable to debug the c/fortran interoperability - !! PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_HEALPIX_DICTIONARY) HEALPIX_DICTIONARY%PRINT( 6_JPIB_K, 0_JPIB_K, HOOKS ) - ! Free the healpix_dictionary - ! PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_HEALPIX_DICTIONARY) HEALPIX_DICTIONARY%FREE( HOOKS ) - - ! Deallocate the healpix_dictionary - DEALLOCATE( HEALPIX_DICTIONARY_CONTAINER%HEALPIX_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_DEALLOCATE_HEALPIX_DICTIONARY ) - HEALPIX_DICTIONARY_CONTAINER%HEALPIX_DICTIONARY => NULL() - HEALPIX_DICTIONARY => NULL() - - ! Error handling - BUFFER = 0_C_INT8_T - - ! Free the wrapper - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_WRAPPER) F_C_FREE_WRAPPER( & -& WRAPPER, HOOKS ) - WRAPPER => NULL() - BUFFER => NULL() - - ! Reset the c pointer - WRAPPED_HEALPIX_DICTIONARY = C_NULL_PTR - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_HEALPIX_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract healpix_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_HEALPIX_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'HEALPIX_DICTIONARY not associated' ) - CASE (ERRFLAG_UNABLE_TO_FREE_HEALPIX_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free healpix_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE_HEALPIX_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to deallocate healpix_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_FREE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free wrapper' ) - CASE (ERRFLAG_UNABLE_TO_PRINT_HEALPIX_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to print healpix_dictionary' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION FREE_HEALPIX_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CREATE_HEALPIX_DICTIONARY' -PP_THREAD_SAFE FUNCTION CREATE_HEALPIX_DICTIONARY( WRAPPED_HEALPIX_DICTIONARY, HEALPIX_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_HEALPIX_DICTIONARY - TYPE(HEALPIX_T), POINTER, INTENT(INOUT) :: HEALPIX_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(HEALPIX_DICTIONARY_CONTAINER_T) :: HEALPIX_DICTIONARY_CONTAINER - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: HEALPIX_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(HEALPIX_DICTIONARY_CONTAINER) / 8_JPIB_K - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HEALPIX_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_HEALPIX_DICTIONARY=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_HEALPIX_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(HEALPIX_DICTIONARY), ERRFLAG_HEALPIX_DICTIONARY_ALREADY_ASSOCIATED) - - ! Allocate the healpix_dictionary - ALLOCATE( HEALPIX_DICTIONARY_CONTAINER%HEALPIX_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_ALLOCATE_HEALPIX_DICTIONARY ) - - ! Allocate the wrapper - WRAPPER => NULL() - BUFFER => NULL() - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) F_C_ALLOCATE_WRAPPER( & -& WRAPPER, BUFFER, HEALPIX_DICTIONARY_IDX_E, HEALPIX_DICTIONARY_CONTAINER_BYTE_SIZE, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - - ! Wrap the healpix_dictionary in order to be able to expose it to c - BUFFER = TRANSFER(HEALPIX_DICTIONARY_CONTAINER, BUFFER, HEALPIX_DICTIONARY_CONTAINER_BYTE_SIZE ) - - ! Set the return arguments - HEALPIX_DICTIONARY => HEALPIX_DICTIONARY_CONTAINER%HEALPIX_DICTIONARY - WRAPPED_HEALPIX_DICTIONARY = C_LOC(WRAPPER) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper already associated' ) - CASE (ERRFLAG_HEALPIX_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'HEALPIX_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_HEALPIX_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate healpix_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate wrapper' ) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated after allocation' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated after allocation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CREATE_HEALPIX_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'INJECT_CHECKSUM_HEALPIX_DICTIONARY' -PP_THREAD_SAFE FUNCTION INJECT_CHECKSUM_HEALPIX_DICTIONARY( WRAPPED_HEALPIX_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_INJECT_CHECKSUM_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_HEALPIX_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_HEALPIX_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_HEALPIX_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - PP_TRYCALL(ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) F_C_INJECT_CHECKSUM_WRAPPER( WRAPPER, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION INJECT_CHECKSUM_HEALPIX_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'EXTRACT_HEALPIX_DICTIONARY' -PP_THREAD_SAFE FUNCTION EXTRACT_HEALPIX_DICTIONARY( WRAPPED_HEALPIX_DICTIONARY, HEALPIX_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_HEALPIX_DICTIONARY - TYPE(HEALPIX_T), POINTER, INTENT(INOUT) :: HEALPIX_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(HEALPIX_DICTIONARY_CONTAINER_T) :: HEALPIX_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: HEALPIX_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(HEALPIX_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HEALPIX_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HEALPIX_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_HEALPIX_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(HEALPIX_DICTIONARY), ERRFLAG_HEALPIX_DICTIONARY_ALREADY_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_HEALPIX_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. HEALPIX_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - HEALPIX_DICTIONARY_CONTAINER = TRANSFER( BUFFER, HEALPIX_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(HEALPIX_DICTIONARY_CONTAINER%HEALPIX_DICTIONARY), ERRFLAG_HEALPIX_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the healpix_dictionary pointer - HEALPIX_DICTIONARY => HEALPIX_DICTIONARY_CONTAINER%HEALPIX_DICTIONARY - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_HEALPIX_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'HEALPIX_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_HEALPIX_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'HEALPIX_DICTIONARY not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION EXTRACT_HEALPIX_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE HEALPIX_DICTIONARY_WRAPPER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/mars_dictionary_utils_mod.F90 b/src/multiom/encoders/api/dictionaries/mars_dictionary_utils_mod.F90 deleted file mode 100644 index 575022e61..000000000 --- a/src/multiom/encoders/api/dictionaries/mars_dictionary_utils_mod.F90 +++ /dev/null @@ -1,2377 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'mars_dictionary_utils_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'MARS_DICTIONARY_UTILS_MOD' -MODULE MARS_DICTIONARY_UTILS_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -!> Enumerators for the iterator -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_STREAM = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_TYPE = 2_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_CLASS = 3_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_ORIGIN = 4_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_ANOFFSET = 5_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_PACKING = 6_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_NUMBER = 7_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_IDENT = 8_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_INSTRUMENT = 9_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_CHANNEL = 10_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_CHEM = 11_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_PARAM = 12_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_MODEL = 13_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_LEVTYPE = 14_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_LEVELIST = 15_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_DIRECTION = 16_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_FREQUENCY = 17_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_DATE = 18_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_TIME = 19_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_STEP = 20_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_REPRES = 21_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_TRUNCATION = 22_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_TIMESPAN = 23_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_STATTYPE = 24_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_EXPVER = 25_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_GRID = 26_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_HDATE = 27_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_WAVELENGTH = 28_JPIB_K - -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_DATASET = 29_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_ACTIVITY = 30_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_EXPERIMENT = 31_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_GENERATION = 32_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_REALIZATION = 33_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_RESOLUTION = 34_JPIB_K - -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_SYSTEM = 35_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_METHOD = 36_JPIB_K - -INTEGER(KIND=JPIB_K), PARAMETER :: MARS_ITERATOR_UNDEF = 37_JPIB_K - - -! Whitelist of public symbols -PUBLIC :: MARS_DICTIONARY_MAX_ITERATOR -PUBLIC :: MARS_DICTIONARY_INIT_ITERATOR -PUBLIC :: MARS_DICTIONARY_NAME2ITERATOR -PUBLIC :: MARS_DICTIONARY_GET_NEXT_ITERATOR -PUBLIC :: MARS_DICTIONARY_HAS -PUBLIC :: MARS_DICTIONARY_GET_KEY_AS_STRING -PUBLIC :: MARS_DICTIONARY_GET_VALUE_AS_STRING -PUBLIC :: MARS_DICTIONARY_SET_VALUE_FROM_STRING -PUBLIC :: MARS_DICTIONARY_SET_VALUE_FROM_INT64 -PUBLIC :: MARS_DICTIONARY_SET_VALUE_FROM_REAL64 -PUBLIC :: MARS_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -PUBLIC :: MARS_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_MAX_ITERATOR' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_MAX_ITERATOR( MARS_DICTIONARY, MAX_ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MARS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: MAX_ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - MAX_ITERATOR = MARS_ITERATOR_UNDEF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_MAX_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_INIT_ITERATOR' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_INIT_ITERATOR( MARS_DICTIONARY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MARS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - ITERATOR = 1_JPIB_K - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_INIT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_GET_NEXT_ITERATOR' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_GET_NEXT_ITERATOR( MARS_DICTIONARY, ITERATOR, END_OF_ITERATORS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MARS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: END_OF_ITERATORS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - LOGICAL :: HAS_KEY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HAS_ITERATOR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - HAS_KEY = .FALSE. - END_OF_ITERATORS = .FALSE. - DO WHILE(.NOT.HAS_KEY) - - ! Get the next iterator - ITERATOR = ITERATOR + 1 - - ! Check if the iterator is the last one - IF ( ITERATOR .EQ. MARS_ITERATOR_UNDEF ) THEN - END_OF_ITERATORS = .TRUE. - HAS_KEY = .TRUE. - ELSE - PP_TRYCALL(ERRFLAG_HAS_ITERATOR) MARS_DICTIONARY_HAS( MARS_DICTIONARY, ITERATOR, HAS_KEY, HOOKS ) - ENDIF - - ENDDO - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_HAS_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to check if the iterator exists' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_GET_NEXT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_NAME2ITERATOR' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_NAME2ITERATOR( MARS_DICTIONARY, KEY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MARS_DICTIONARY - CHARACTER(LEN=*), INTENT(IN) :: KEY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=LEN(KEY)) :: KEY_LOW - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_MARS_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Convert to string to lowercase - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( KEY, KEY_LOW, HOOKS ) - - ! Get the iterator from the key name - SELECT CASE ( KEY_LOW ) - - CASE ( 'stream' ) - ITERATOR = MARS_ITERATOR_STREAM - - CASE ( 'type' ) - ITERATOR = MARS_ITERATOR_TYPE - - CASE ( 'class' ) - ITERATOR = MARS_ITERATOR_CLASS - - CASE ( 'origin' ) - ITERATOR = MARS_ITERATOR_ORIGIN - - CASE ( 'anoffset' ) - ITERATOR = MARS_ITERATOR_ANOFFSET - - CASE ( 'packing' ) - ITERATOR = MARS_ITERATOR_PACKING - - CASE ( 'number' ) - ITERATOR = MARS_ITERATOR_NUMBER - - CASE ( 'ident' ) - ITERATOR = MARS_ITERATOR_IDENT - - CASE ( 'instrument' ) - ITERATOR = MARS_ITERATOR_INSTRUMENT - - CASE ( 'channel' ) - ITERATOR = MARS_ITERATOR_CHANNEL - - CASE ( 'chem' ) - ITERATOR = MARS_ITERATOR_CHEM - - CASE ( 'param' ) - ITERATOR = MARS_ITERATOR_PARAM - - CASE ( 'model' ) - ITERATOR = MARS_ITERATOR_MODEL - - CASE ( 'levtype' ) - ITERATOR = MARS_ITERATOR_LEVTYPE - - CASE ( 'levelist' ) - ITERATOR = MARS_ITERATOR_LEVELIST - - CASE ( 'direction' ) - ITERATOR = MARS_ITERATOR_DIRECTION - - CASE ( 'frequency' ) - ITERATOR = MARS_ITERATOR_FREQUENCY - - CASE ( 'wavelength' ) - ITERATOR = MARS_ITERATOR_WAVELENGTH - - CASE ( 'date' ) - ITERATOR = MARS_ITERATOR_DATE - - CASE ( 'hdate' ) - ITERATOR = MARS_ITERATOR_HDATE - - CASE ( 'time' ) - ITERATOR = MARS_ITERATOR_TIME - - CASE ( 'step' ) - ITERATOR = MARS_ITERATOR_STEP - - CASE ( 'repres' ) - ITERATOR = MARS_ITERATOR_REPRES - - CASE ( 'truncation' ) - ITERATOR = MARS_ITERATOR_TRUNCATION - - CASE ( 'timespan' ) - ITERATOR = MARS_ITERATOR_TIMESPAN - - CASE ( 'stattype' ) - ITERATOR = MARS_ITERATOR_STATTYPE - - CASE ( 'expver' ) - ITERATOR = MARS_ITERATOR_EXPVER - - CASE ( 'grid' ) - ITERATOR = MARS_ITERATOR_GRID - - CASE ( 'dataset' ) - ITERATOR = MARS_ITERATOR_DATASET - - CASE ( 'activity' ) - ITERATOR = MARS_ITERATOR_ACTIVITY - - CASE ( 'experiment' ) - ITERATOR = MARS_ITERATOR_EXPERIMENT - - CASE ( 'generation' ) - ITERATOR = MARS_ITERATOR_GENERATION - - CASE ( 'realization' ) - ITERATOR = MARS_ITERATOR_REALIZATION - - CASE ( 'resolution' ) - ITERATOR = MARS_ITERATOR_RESOLUTION - - CASE ( 'system' ) - ITERATOR = MARS_ITERATOR_SYSTEM - - CASE ( 'method' ) - ITERATOR = MARS_ITERATOR_METHOD - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_MARS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_CONVERT_LC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert to lowercase' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'key: '//TRIM(ADJUSTL(KEY)) ) - CASE(ERRFLAG_NO_MARS_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'No MARS key found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_NAME2ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_HAS' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_HAS( MARS_DICTIONARY, ITERATOR, HAS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MARS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_MARS_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( MARS_ITERATOR_STREAM ) - IF ( MARS_DICTIONARY%STREAM .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_TYPE ) - IF ( MARS_DICTIONARY%TYPE .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_CLASS ) - IF ( MARS_DICTIONARY%CLASS .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_ORIGIN ) - IF ( MARS_DICTIONARY%ORIGIN .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_ANOFFSET ) - IF ( MARS_DICTIONARY%ANOFFSET .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_PACKING ) - IF ( MARS_DICTIONARY%PACKING .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_NUMBER ) - IF ( MARS_DICTIONARY%NUMBER .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_IDENT ) - IF ( MARS_DICTIONARY%IDENT .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_INSTRUMENT ) - IF ( MARS_DICTIONARY%INSTRUMENT .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_CHANNEL ) - IF ( MARS_DICTIONARY%CHANNEL .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_CHEM ) - IF ( MARS_DICTIONARY%CHEM .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_PARAM ) - IF ( MARS_DICTIONARY%PARAM .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_MODEL ) - IF ( MARS_DICTIONARY%MODEL .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_LEVTYPE ) - IF ( MARS_DICTIONARY%LEVTYPE .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_LEVELIST ) - IF ( MARS_DICTIONARY%LEVELIST .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_DIRECTION ) - IF ( MARS_DICTIONARY%DIRECTION .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_FREQUENCY ) - IF ( MARS_DICTIONARY%FREQUENCY .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_WAVELENGTH ) - IF ( MARS_DICTIONARY%WAVELENGTH .NE. REPEAT('*', 32) ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_DATE ) - IF ( MARS_DICTIONARY%DATE .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_HDATE ) - IF ( MARS_DICTIONARY%HDATE .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_TIME ) - IF ( MARS_DICTIONARY%TIME .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_STEP ) - IF ( MARS_DICTIONARY%STEP .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_REPRES ) - IF ( MARS_DICTIONARY%REPRES .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_TRUNCATION ) - IF ( MARS_DICTIONARY%TRUNCATION .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_TIMESPAN ) - IF ( MARS_DICTIONARY%TIMESPAN .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_STATTYPE ) - IF ( MARS_DICTIONARY%STATTYPE .NE. REPEAT('*',32) ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_EXPVER ) - IF ( MARS_DICTIONARY%EXPVER .NE. REPEAT('*',4) ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_GRID ) - IF ( MARS_DICTIONARY%GRID .NE. REPEAT('*',8) ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_DATASET ) - IF ( MARS_DICTIONARY%DATASET .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_ACTIVITY ) - IF ( MARS_DICTIONARY%ACTIVITY .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_EXPERIMENT ) - IF ( MARS_DICTIONARY%EXPERIMENT .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_GENERATION ) - IF ( MARS_DICTIONARY%GENERATION .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_REALIZATION ) - IF ( MARS_DICTIONARY%REALIZATION .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_RESOLUTION ) - IF ( MARS_DICTIONARY%RESOLUTION .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_SYSTEM ) - IF ( MARS_DICTIONARY%SYSTEM .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_METHOD ) - IF ( MARS_DICTIONARY%METHOD .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_MARS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_MARS_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_HAS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_GET_KEY_AS_STRING' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_GET_KEY_AS_STRING( MARS_DICTIONARY, ITERATOR, KEY, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MARS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=64), INTENT(OUT) :: KEY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_MARS_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_ENUM_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize the value - KEY = REPEAT( ' ', LEN(KEY) ) - - SELECT CASE ( ITERATOR ) - - CASE ( MARS_ITERATOR_STREAM ) - KEY = 'stream' - - CASE ( MARS_ITERATOR_TYPE ) - KEY = 'type' - - CASE ( MARS_ITERATOR_CLASS ) - KEY = 'class' - - CASE ( MARS_ITERATOR_ORIGIN ) - KEY = 'origin' - - CASE ( MARS_ITERATOR_ANOFFSET ) - KEY = 'anoffset' - - CASE ( MARS_ITERATOR_PACKING ) - KEY = 'packing' - - CASE ( MARS_ITERATOR_NUMBER ) - KEY = 'number' - - CASE ( MARS_ITERATOR_IDENT ) - KEY = 'ident' - - CASE ( MARS_ITERATOR_INSTRUMENT ) - KEY = 'instrument' - - CASE ( MARS_ITERATOR_CHANNEL ) - KEY = 'channel' - - CASE ( MARS_ITERATOR_CHEM ) - KEY = 'chem' - - CASE ( MARS_ITERATOR_PARAM ) - KEY = 'param' - - CASE ( MARS_ITERATOR_MODEL ) - KEY = 'model' - - CASE ( MARS_ITERATOR_LEVTYPE ) - KEY = 'levtype' - - CASE ( MARS_ITERATOR_LEVELIST ) - KEY = 'levelist' - - CASE ( MARS_ITERATOR_DIRECTION ) - KEY = 'direction' - - CASE ( MARS_ITERATOR_FREQUENCY ) - KEY = 'frequency' - - CASE ( MARS_ITERATOR_WAVELENGTH ) - KEY = 'wavelength' - - CASE ( MARS_ITERATOR_DATE ) - KEY = 'date' - - CASE ( MARS_ITERATOR_HDATE ) - KEY = 'hdate' - - CASE ( MARS_ITERATOR_TIME ) - KEY = 'time' - - CASE ( MARS_ITERATOR_STEP ) - KEY = 'step' - - CASE ( MARS_ITERATOR_REPRES ) - KEY = 'repres' - - CASE ( MARS_ITERATOR_TRUNCATION ) - KEY = 'truncation' - - CASE ( MARS_ITERATOR_TIMESPAN ) - KEY = 'timespan' - - CASE ( MARS_ITERATOR_STATTYPE ) - KEY = 'stattype' - - CASE ( MARS_ITERATOR_EXPVER ) - KEY = 'expver' - - CASE ( MARS_ITERATOR_GRID ) - KEY = 'grid' - - CASE ( MARS_ITERATOR_DATASET ) - KEY = 'dataset' - - CASE ( MARS_ITERATOR_ACTIVITY ) - KEY = 'activity' - - CASE ( MARS_ITERATOR_EXPERIMENT ) - KEY = 'experiment' - - CASE ( MARS_ITERATOR_GENERATION ) - KEY = 'generation' - - CASE ( MARS_ITERATOR_REALIZATION ) - KEY = 'realization' - - CASE ( MARS_ITERATOR_RESOLUTION ) - KEY = 'resolution' - - CASE ( MARS_ITERATOR_SYSTEM ) - KEY = 'system' - - CASE ( MARS_ITERATOR_METHOD ) - KEY = 'method' - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_MARS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_MARS_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_ENUM_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_GET_KEY_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_GET_VALUE_AS_STRING' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_GET_VALUE_AS_STRING( MARS_DICTIONARY, ITERATOR, VALUE, HAS, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: ISTREAM2CSTREAM - USE :: ENUMERATORS_MOD, ONLY: ITYPE2CTYPE - USE :: ENUMERATORS_MOD, ONLY: ICLASS2CCLASS - USE :: ENUMERATORS_MOD, ONLY: ILEVTYPE2CLEVTYPE - USE :: ENUMERATORS_MOD, ONLY: IORIGIN2CORIGIN - USE :: ENUMERATORS_MOD, ONLY: IREPRES2CREPRES - USE :: ENUMERATORS_MOD, ONLY: IPACKING2CPACKING - USE :: ENUMERATORS_MOD, ONLY: IACTIVITY2CACTIVITY - USE :: ENUMERATORS_MOD, ONLY: IDATASET2CDATASET - USE :: ENUMERATORS_MOD, ONLY: IEXPERIMENT2CEXPERIMENT - USE :: ENUMERATORS_MOD, ONLY: IRESOLUTION2CRESOLUTION - USE :: ENUMERATORS_MOD, ONLY: IMODEL2CMODEL - USE :: API_GENERAL_UTILS_MOD, ONLY: CONVERT_TO_C_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MARS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - TYPE(C_PTR), INTENT(OUT) :: VALUE - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=64) :: TMP_VALUE - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_MARS_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_ENUM_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize the value - TMP_VALUE = REPEAT( ' ', LEN(TMP_VALUE) ) - - SELECT CASE ( ITERATOR ) - - CASE ( MARS_ITERATOR_STREAM ) - IF ( MARS_DICTIONARY%STREAM .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) ISTREAM2CSTREAM(MARS_DICTIONARY%STREAM, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_TYPE ) - IF ( MARS_DICTIONARY%TYPE .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) ITYPE2CTYPE(MARS_DICTIONARY%TYPE, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_CLASS ) - IF ( MARS_DICTIONARY%CLASS .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) ICLASS2CCLASS(MARS_DICTIONARY%CLASS, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_ORIGIN ) - IF ( MARS_DICTIONARY%ORIGIN .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) IORIGIN2CORIGIN(MARS_DICTIONARY%ORIGIN, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_ANOFFSET ) - IF ( MARS_DICTIONARY%ANOFFSET .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%ANOFFSET, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_PACKING ) - IF ( MARS_DICTIONARY%PACKING .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) IPACKING2CPACKING(MARS_DICTIONARY%PACKING, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_NUMBER ) - IF ( MARS_DICTIONARY%NUMBER .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%NUMBER, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_IDENT ) - IF ( MARS_DICTIONARY%IDENT .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%IDENT, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_INSTRUMENT ) - IF ( MARS_DICTIONARY%INSTRUMENT .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%INSTRUMENT, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_CHANNEL ) - IF ( MARS_DICTIONARY%CHANNEL .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%CHANNEL, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_CHEM ) - IF ( MARS_DICTIONARY%CHEM .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%CHEM, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_PARAM ) - IF ( MARS_DICTIONARY%PARAM .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%PARAM, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_MODEL ) - IF ( MARS_DICTIONARY%MODEL .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) IMODEL2CMODEL(MARS_DICTIONARY%MODEL, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_LEVTYPE ) - IF ( MARS_DICTIONARY%LEVTYPE .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) ILEVTYPE2CLEVTYPE(MARS_DICTIONARY%LEVTYPE, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_LEVELIST ) - IF ( MARS_DICTIONARY%LEVELIST .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%LEVELIST, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_DIRECTION ) - IF ( MARS_DICTIONARY%DIRECTION .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%DIRECTION, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_FREQUENCY ) - IF ( MARS_DICTIONARY%FREQUENCY .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%FREQUENCY, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_DATE ) - IF ( MARS_DICTIONARY%DATE .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%DATE, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_HDATE ) - IF ( MARS_DICTIONARY%HDATE .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%HDATE, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_WAVELENGTH ) - IF ( MARS_DICTIONARY%WAVELENGTH .NE. REPEAT('*',32) ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%WAVELENGTH, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_TIME ) - IF ( MARS_DICTIONARY%TIME .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%TIME, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_STEP ) - IF ( MARS_DICTIONARY%STEP .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%STEP, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_REPRES ) - IF ( MARS_DICTIONARY%REPRES .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) IREPRES2CREPRES(MARS_DICTIONARY%REPRES, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_TRUNCATION ) - IF ( MARS_DICTIONARY%TRUNCATION .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%TRUNCATION, VALUE, HOOKS) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_TIMESPAN ) - IF ( MARS_DICTIONARY%TIMESPAN .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%TIMESPAN, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_STATTYPE ) - IF ( MARS_DICTIONARY%STATTYPE .NE. REPEAT('*',32) ) THEN - TMP_VALUE = TRIM(ADJUSTL(MARS_DICTIONARY%STATTYPE)) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_EXPVER ) - IF ( MARS_DICTIONARY%EXPVER .NE. REPEAT('*',8) ) THEN - TMP_VALUE = TRIM(ADJUSTL(MARS_DICTIONARY%EXPVER)) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_GRID ) - IF ( MARS_DICTIONARY%GRID .NE. REPEAT('*',8) ) THEN - TMP_VALUE = TRIM(ADJUSTL(MARS_DICTIONARY%GRID)) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_DATASET ) - IF ( MARS_DICTIONARY%DATASET .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) IDATASET2CDATASET(MARS_DICTIONARY%DATASET, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_ACTIVITY ) - IF ( MARS_DICTIONARY%ACTIVITY .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) IACTIVITY2CACTIVITY(MARS_DICTIONARY%ACTIVITY, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_EXPERIMENT ) - IF ( MARS_DICTIONARY%EXPERIMENT .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) IEXPERIMENT2CEXPERIMENT(MARS_DICTIONARY%EXPERIMENT, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_RESOLUTION ) - IF ( MARS_DICTIONARY%RESOLUTION .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) IRESOLUTION2CRESOLUTION(MARS_DICTIONARY%RESOLUTION, TMP_VALUE, HOOKS) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(TMP_VALUE, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_SYSTEM ) - IF ( MARS_DICTIONARY%SYSTEM .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%SYSTEM, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE ( MARS_ITERATOR_METHOD ) - IF ( MARS_DICTIONARY%METHOD .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%METHOD, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - - CASE ( MARS_ITERATOR_GENERATION ) - IF ( MARS_DICTIONARY%GENERATION .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%GENERATION, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - - CASE ( MARS_ITERATOR_REALIZATION ) - IF ( MARS_DICTIONARY%REALIZATION .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(MARS_DICTIONARY%REALIZATION, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - END IF - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_MARS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_MARS_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_ENUM_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_GET_VALUE_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_SET_VALUE_FROM_STRING' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_SET_VALUE_FROM_STRING( MARS_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: CSTREAM2ISTREAM - USE :: ENUMERATORS_MOD, ONLY: CTYPE2ITYPE - USE :: ENUMERATORS_MOD, ONLY: CCLASS2ICLASS - USE :: ENUMERATORS_MOD, ONLY: CLEVTYPE2ILEVTYPE - USE :: ENUMERATORS_MOD, ONLY: CORIGIN2IORIGIN - USE :: ENUMERATORS_MOD, ONLY: CINT2IINT - USE :: ENUMERATORS_MOD, ONLY: CFLOAT2IFLOAT - USE :: ENUMERATORS_MOD, ONLY: CREPRES2IREPRES - USE :: ENUMERATORS_MOD, ONLY: CPACKING2IPACKING - USE :: ENUMERATORS_MOD, ONLY: CMODEL2IMODEL - USE :: ENUMERATORS_MOD, ONLY: CTIME2ITIME - - USE :: ENUMERATORS_MOD, ONLY: CACTIVITY2IACTIVITY - USE :: ENUMERATORS_MOD, ONLY: CDATASET2IDATASET - USE :: ENUMERATORS_MOD, ONLY: CEXPERIMENT2IEXPERIMENT - USE :: ENUMERATORS_MOD, ONLY: CRESOLUTION2IRESOLUTION - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(INOUT) :: MARS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=*), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ITEMP - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_MARS_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_MARS_TO_ENUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( MARS_ITERATOR_STREAM ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CSTREAM2ISTREAM(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%STREAM=ITEMP - - CASE ( MARS_ITERATOR_TYPE ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CTYPE2ITYPE(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%TYPE=ITEMP - - CASE ( MARS_ITERATOR_CLASS ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CCLASS2ICLASS(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%CLASS=ITEMP - - CASE ( MARS_ITERATOR_ORIGIN ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CORIGIN2IORIGIN(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%ORIGIN=ITEMP - - CASE ( MARS_ITERATOR_ANOFFSET ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%ANOFFSET=ITEMP - - CASE ( MARS_ITERATOR_PACKING ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CPACKING2IPACKING(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%PACKING=ITEMP - - CASE ( MARS_ITERATOR_NUMBER ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%NUMBER=ITEMP - - CASE ( MARS_ITERATOR_IDENT ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%IDENT=ITEMP - - CASE ( MARS_ITERATOR_INSTRUMENT ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%INSTRUMENT=ITEMP - - CASE ( MARS_ITERATOR_CHANNEL ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%CHANNEL=ITEMP - - CASE ( MARS_ITERATOR_CHEM ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%CHEM=ITEMP - - CASE ( MARS_ITERATOR_PARAM ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%PARAM=ITEMP - - CASE ( MARS_ITERATOR_MODEL ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CMODEL2IMODEL(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%MODEL=ITEMP - - CASE ( MARS_ITERATOR_LEVTYPE ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CLEVTYPE2ILEVTYPE(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%LEVTYPE=ITEMP - - CASE ( MARS_ITERATOR_LEVELIST ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%LEVELIST=ITEMP - - CASE ( MARS_ITERATOR_DIRECTION ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%DIRECTION=ITEMP - - CASE ( MARS_ITERATOR_FREQUENCY ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%FREQUENCY=ITEMP - - CASE ( MARS_ITERATOR_DATE ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%DATE=ITEMP - - CASE ( MARS_ITERATOR_HDATE ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%HDATE=ITEMP - - CASE ( MARS_ITERATOR_TIME ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CTIME2ITIME(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%TIME=ITEMP - - CASE ( MARS_ITERATOR_STEP ) - ! TODO handle step range? - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%step=ITEMP - - CASE ( MARS_ITERATOR_REPRES ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CREPRES2IREPRES(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%repres=ITEMP - - CASE ( MARS_ITERATOR_TRUNCATION ) - ! TODO - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%TRUNCATION=ITEMP - - CASE ( MARS_ITERATOR_TIMESPAN ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%TIMESPAN=ITEMP - - CASE ( MARS_ITERATOR_STATTYPE ) - MARS_DICTIONARY%STATTYPE = VALUE - - CASE ( MARS_ITERATOR_EXPVER ) - MARS_DICTIONARY%EXPVER=VALUE - - CASE ( MARS_ITERATOR_GRID ) - MARS_DICTIONARY%GRID=VALUE - - CASE ( MARS_ITERATOR_WAVELENGTH ) - MARS_DICTIONARY%WAVELENGTH=VALUE - - CASE ( MARS_ITERATOR_DATASET ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CDATASET2IDATASET(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%DATASET=ITEMP - - CASE ( MARS_ITERATOR_ACTIVITY ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CACTIVITY2IACTIVITY(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%ACTIVITY=ITEMP - - CASE ( MARS_ITERATOR_EXPERIMENT ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CEXPERIMENT2IEXPERIMENT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%EXPERIMENT=ITEMP - - CASE ( MARS_ITERATOR_RESOLUTION ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CRESOLUTION2IRESOLUTION(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%RESOLUTION=ITEMP - - CASE ( MARS_ITERATOR_GENERATION ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%GENERATION=ITEMP - - CASE ( MARS_ITERATOR_REALIZATION ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%REALIZATION=ITEMP - - CASE ( MARS_ITERATOR_SYSTEM ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%SYSTEM=ITEMP - - CASE ( MARS_ITERATOR_METHOD ) - PP_TRYCALL(ERRFLAG_CONVERT_MARS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - MARS_DICTIONARY%METHOD=ITEMP - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_MARS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_MARS_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE( ERRFLAG_CONVERT_MARS_TO_ENUM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert MARS to enumerator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_SET_VALUE_FROM_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_SET_VALUE_FROM_INT64' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_SET_VALUE_FROM_INT64( MARS_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(INOUT) :: MARS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_MARS_KEY=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( MARS_ITERATOR_ANOFFSET ) - MARS_DICTIONARY%ANOFFSET=VALUE - - CASE ( MARS_ITERATOR_NUMBER ) - MARS_DICTIONARY%NUMBER=VALUE - - CASE ( MARS_ITERATOR_IDENT ) - MARS_DICTIONARY%IDENT=VALUE - - CASE ( MARS_ITERATOR_INSTRUMENT ) - MARS_DICTIONARY%INSTRUMENT=VALUE - - CASE ( MARS_ITERATOR_CHANNEL ) - MARS_DICTIONARY%CHANNEL=VALUE - - CASE ( MARS_ITERATOR_CHEM ) - MARS_DICTIONARY%CHEM=VALUE - - CASE ( MARS_ITERATOR_PARAM ) - MARS_DICTIONARY%PARAM=VALUE - - CASE ( MARS_ITERATOR_LEVELIST ) - MARS_DICTIONARY%LEVELIST=VALUE - - CASE ( MARS_ITERATOR_DIRECTION ) - MARS_DICTIONARY%DIRECTION=VALUE - - CASE ( MARS_ITERATOR_FREQUENCY ) - MARS_DICTIONARY%FREQUENCY=VALUE - - CASE ( MARS_ITERATOR_DATE ) - MARS_DICTIONARY%DATE=VALUE - - CASE ( MARS_ITERATOR_HDATE ) - MARS_DICTIONARY%HDATE=VALUE - - CASE ( MARS_ITERATOR_TIME ) - MARS_DICTIONARY%TIME=VALUE - - CASE ( MARS_ITERATOR_STEP ) - ! TODO handle step range? - MARS_DICTIONARY%step=VALUE - - CASE ( MARS_ITERATOR_TRUNCATION ) - ! TODO - MARS_DICTIONARY%TRUNCATION=VALUE - - CASE ( MARS_ITERATOR_TIMESPAN ) - MARS_DICTIONARY%TIMESPAN=VALUE - - CASE ( MARS_ITERATOR_GENERATION ) - MARS_DICTIONARY%GENERATION=VALUE - - CASE ( MARS_ITERATOR_REALIZATION ) - MARS_DICTIONARY%REALIZATION=VALUE - - CASE ( MARS_ITERATOR_SYSTEM ) - MARS_DICTIONARY%SYSTEM=VALUE - - CASE ( MARS_ITERATOR_METHOD ) - MARS_DICTIONARY%METHOD=VALUE - - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_MARS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_MARS_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_SET_VALUE_FROM_INT64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_SET_VALUE_FROM_REAL64' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_SET_VALUE_FROM_REAL64( MARS_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(INOUT) :: MARS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_MARS_KEY=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_MARS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_MARS_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_SET_VALUE_FROM_REAL64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( MARS_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(INOUT) :: MARS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_MARS_KEY=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_MARS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_MARS_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MARS_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY' -PP_THREAD_SAFE FUNCTION MARS_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( MARS_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(INOUT) :: MARS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_MARS_KEY=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_MARS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_MARS_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MARS_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE MARS_DICTIONARY_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/mars_dictionary_wrapper_mod.F90 b/src/multiom/encoders/api/dictionaries/mars_dictionary_wrapper_mod.F90 deleted file mode 100644 index 8e0c99951..000000000 --- a/src/multiom/encoders/api/dictionaries/mars_dictionary_wrapper_mod.F90 +++ /dev/null @@ -1,801 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'mars_dictionary_wrapper_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'MARS_DICTIONARY_WRAPPER_MOD' -MODULE MARS_DICTIONARY_WRAPPER_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - - ! Symbols imported from other modules within the project. - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - -IMPLICIT NONE - - !> Default module visibnility - PRIVATE - - !> MARS_DICTIONARY index used used to identify the mars_dictionary wrapper - INTEGER(KIND=JPIB_K), PARAMETER :: MARS_DICTIONARY_IDX_E = 1_JPIB_K - - !> Class used as a wrapper for the mars_dictionary - TYPE :: MARS_DICTIONARY_CONTAINER_T - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICTIONARY => NULL() - END TYPE - - !> Whitelist of public symbols - PUBLIC :: MARS_DICTIONARY_IDX_E - - PUBLIC :: MAKE_MARS_DICTIONARY - PUBLIC :: FREE_MARS_DICTIONARY - PUBLIC :: EXTRACT_MARS_DICTIONARY - -CONTAINS - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_MARS_DICTIONARY' -PP_THREAD_SAFE FUNCTION MAKE_MARS_DICTIONARY( WRAPPED_MARS_DICTIONARY, & -& HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_MARS_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICTIONARY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_DICTIONARY_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CREATE_MARS_DICTIONARY=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZE_MARS_DICTIONARY=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INJECT_CHECKSUM=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_MARS_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED ) - - !> Initialize the mars_dictionary - MARS_DICTIONARY => NULL() - - !> Create the mars_dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_CREATE_MARS_DICTIONARY) CREATE_MARS_DICTIONARY( & -& WRAPPED_MARS_DICTIONARY, MARS_DICTIONARY, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(MARS_DICTIONARY), ERRFLAG_MARS_DICTIONARY_NOT_ASSOCIATED ) - - ! Initialize the mars_dictionary - PP_TRYCALL(ERRFLAG_INITIALIZE_MARS_DICTIONARY) MARS_DICTIONARY%INIT( HOOKS ) - - ! Inject checksum - PP_TRYCALL(ERRFLAG_INJECT_CHECKSUM) INJECT_CHECKSUM_MARS_DICTIONARY( WRAPPED_MARS_DICTIONARY, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'MARS_DICTIONARY already associated at function entry' ) - CASE (ERRFLAG_MARS_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'MARS_DICTIONARY not associated after allocation' ) - CASE (ERRFLAG_UNABLE_TO_CREATE_MARS_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract mars_dictionary' ) - CASE (ERRFLAG_INITIALIZE_MARS_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to initialize mars_dictionary' ) - CASE (ERRFLAG_INJECT_CHECKSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_MARS_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'FREE_MARS_DICTIONARY' -PP_THREAD_SAFE FUNCTION FREE_MARS_DICTIONARY( WRAPPED_MARS_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_FREE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_MARS_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(FORTRAN_MESSAGE_T), POINTER :: MARS_DICTIONARY - TYPE(MARS_DICTIONARY_CONTAINER_T) :: MARS_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: MARS_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(MARS_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_MARS_DICTIONARY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_MARS_DICTIONARY=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE_MARS_DICTIONARY=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_WRAPPER=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_MARS_DICTIONARY=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_MARS_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_MARS_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. MARS_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - MARS_DICTIONARY_CONTAINER = TRANSFER( BUFFER, MARS_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(MARS_DICTIONARY_CONTAINER%MARS_DICTIONARY), ERRFLAG_MARS_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the mars_dictionary pointer - MARS_DICTIONARY => MARS_DICTIONARY_CONTAINER%MARS_DICTIONARY - - ! Print the mars_dictionary to be freed - !! MIVAL: This is a debug print statement that should be enable to debug the c/fortran interoperability - !! PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_MARS_DICTIONARY) MARS_DICTIONARY%PRINT( 6_JPIB_K, 0_JPIB_K, HOOKS ) - ! Free the mars_dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_MARS_DICTIONARY) MARS_DICTIONARY%FREE( HOOKS ) - - ! Deallocate the mars_dictionary - DEALLOCATE( MARS_DICTIONARY_CONTAINER%MARS_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_DEALLOCATE_MARS_DICTIONARY ) - MARS_DICTIONARY_CONTAINER%MARS_DICTIONARY => NULL() - MARS_DICTIONARY => NULL() - - ! Error handling - BUFFER = 0_C_INT8_T - - ! Free the wrapper - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_WRAPPER) F_C_FREE_WRAPPER( & -& WRAPPER, HOOKS ) - WRAPPER => NULL() - BUFFER => NULL() - - ! Reset the c pointer - WRAPPED_MARS_DICTIONARY = C_NULL_PTR - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_MARS_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract mars_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_MARS_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'MARS_DICTIONARY not associated' ) - CASE (ERRFLAG_UNABLE_TO_FREE_MARS_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free mars_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE_MARS_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to deallocate mars_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_FREE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free wrapper' ) - CASE (ERRFLAG_UNABLE_TO_PRINT_MARS_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to print mars_dictionary' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION FREE_MARS_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CREATE_MARS_DICTIONARY' -PP_THREAD_SAFE FUNCTION CREATE_MARS_DICTIONARY( WRAPPED_MARS_DICTIONARY, MARS_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_MARS_DICTIONARY - TYPE(FORTRAN_MESSAGE_T), POINTER, INTENT(INOUT) :: MARS_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(MARS_DICTIONARY_CONTAINER_T) :: MARS_DICTIONARY_CONTAINER - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: MARS_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(MARS_DICTIONARY_CONTAINER) / 8_JPIB_K - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_MARS_DICTIONARY=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_MARS_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(MARS_DICTIONARY), ERRFLAG_MARS_DICTIONARY_ALREADY_ASSOCIATED) - - ! Allocate the mars_dictionary - ALLOCATE( MARS_DICTIONARY_CONTAINER%MARS_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_ALLOCATE_MARS_DICTIONARY ) - - ! Allocate the wrapper - WRAPPER => NULL() - BUFFER => NULL() - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) F_C_ALLOCATE_WRAPPER( & -& WRAPPER, BUFFER, MARS_DICTIONARY_IDX_E, MARS_DICTIONARY_CONTAINER_BYTE_SIZE, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - - ! Wrap the mars_dictionary in order to be able to expose it to c - BUFFER = TRANSFER(MARS_DICTIONARY_CONTAINER, BUFFER, MARS_DICTIONARY_CONTAINER_BYTE_SIZE ) - - ! Set the return arguments - MARS_DICTIONARY => MARS_DICTIONARY_CONTAINER%MARS_DICTIONARY - WRAPPED_MARS_DICTIONARY = C_LOC(WRAPPER) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper already associated' ) - CASE (ERRFLAG_MARS_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'MARS_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_MARS_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate mars_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate wrapper' ) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated after allocation' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated after allocation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CREATE_MARS_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'INJECT_CHECKSUM_MARS_DICTIONARY' -PP_THREAD_SAFE FUNCTION INJECT_CHECKSUM_MARS_DICTIONARY( WRAPPED_MARS_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_INJECT_CHECKSUM_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_MARS_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_MARS_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_MARS_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - PP_TRYCALL(ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) F_C_INJECT_CHECKSUM_WRAPPER( WRAPPER, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION INJECT_CHECKSUM_MARS_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'EXTRACT_MARS_DICTIONARY' -PP_THREAD_SAFE FUNCTION EXTRACT_MARS_DICTIONARY( WRAPPED_MARS_DICTIONARY, MARS_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_MARS_DICTIONARY - TYPE(FORTRAN_MESSAGE_T), POINTER, INTENT(INOUT) :: MARS_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(MARS_DICTIONARY_CONTAINER_T) :: MARS_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: MARS_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(MARS_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_MARS_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(MARS_DICTIONARY), ERRFLAG_MARS_DICTIONARY_ALREADY_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_MARS_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. MARS_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - MARS_DICTIONARY_CONTAINER = TRANSFER( BUFFER, MARS_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(MARS_DICTIONARY_CONTAINER%MARS_DICTIONARY), ERRFLAG_MARS_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the mars_dictionary pointer - MARS_DICTIONARY => MARS_DICTIONARY_CONTAINER%MARS_DICTIONARY - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_MARS_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'MARS_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_MARS_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'MARS_DICTIONARY not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION EXTRACT_MARS_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE MARS_DICTIONARY_WRAPPER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/options_dictionary_utils_mod.F90 b/src/multiom/encoders/api/dictionaries/options_dictionary_utils_mod.F90 deleted file mode 100644 index ee02b5dae..000000000 --- a/src/multiom/encoders/api/dictionaries/options_dictionary_utils_mod.F90 +++ /dev/null @@ -1,1940 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'options_dictionary_utils_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'OPTIONS_DICTIONARY_UTILS_MOD' -MODULE OPTIONS_DICTIONARY_UTILS_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -TYPE :: API_OPTIONS_T - CHARACTER(LEN=8192) :: MAPPING_RULES_FNAME = '{MULTIO_INSTALL_DIR}/mappings/mapping-rules.yaml' - CHARACTER(LEN=8192) :: ENCODING_RULES_FNAME = '{MULTIO_INSTALL_DIR}/encodings/encoding-rules.yaml' - CHARACTER(LEN=8192) :: SAMPLES_PATH = '{MULTIO_INSTALL_DIR}/samples' - CHARACTER(LEN=8192) :: SAMPLE_FNAME = 'sample' - LOGICAL :: PRINT_WHOLE_ERROR_STACK = .FALSE. - LOGICAL :: PRINT_DICTIONARIES = .FALSE. - LOGICAL :: GENERATE_TEST_CASES = .FALSE. -END TYPE - -!> Enumerators for the iterator -INTEGER(KIND=JPIB_K), PARAMETER :: OPTIONS_ITERATOR_ENCODING_RULES_FILE = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: OPTIONS_ITERATOR_MAPPING_RULES_FILE = 2_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: OPTIONS_ITERATOR_SAMPLES_PATH = 3_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: OPTIONS_ITERATOR_SAMPLE_FNAME = 4_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: OPTIONS_ITERATOR_PRINT_WHOLE_ERROR_STACK = 5_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: OPTIONS_ITERATOR_PRINT_DICTIONARIES = 6_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: OPTIONS_ITERATOR_GENERATE_TEST_CASES = 7_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: OPTIONS_ITERATOR_UNDEF = 8_JPIB_K - - -! Whitelist of public symbols -PUBLIC :: API_OPTIONS_T -PUBLIC :: OPTIONS_DICTIONARY_INIT_DEFAULT -PUBLIC :: OPTIONS_DICTIONARY_MAX_ITERATOR -PUBLIC :: OPTIONS_DICTIONARY_INIT_ITERATOR -PUBLIC :: OPTIONS_DICTIONARY_NAME2ITERATOR -PUBLIC :: OPTIONS_DICTIONARY_GET_NEXT_ITERATOR -PUBLIC :: OPTIONS_DICTIONARY_GET_KEY_AS_STRING -PUBLIC :: OPTIONS_DICTIONARY_GET_VALUE_AS_STRING -PUBLIC :: OPTIONS_DICTIONARY_SET_VALUE_FROM_STRING - -! General utils -PUBLIC :: OPTIONS_DICTIONARY_IS_ALLOWED -PUBLIC :: OPTIONS_DICTIONARY_HAS -PUBLIC :: OPTIONS_DICTIONARY_RANK -PUBLIC :: OPTIONS_DICTIONARY_SIZE - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_MAX_ITERATOR' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_MAX_ITERATOR( OPTIONS_DICTIONARY, MAX_ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: MAX_ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - MAX_ITERATOR = OPTIONS_ITERATOR_UNDEF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_MAX_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#if 0 -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_INIT_DEFAULT' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_INIT_DEFAULT( OPTIONS_DICTIONARY, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(INOUT) :: OPTIONS_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - OPTIONS_DICTIONARY%ENCODING_RULES_FNAME = '{MULTIO_INSTALL_DIR}/mappings/mapping-rules.yaml' - OPTIONS_DICTIONARY%MAPPING_RULES_FNAME = '{MULTIO_INSTALL_DIR}/encodings/encoding-rules.yaml' - OPTIONS_DICTIONARY%SAMPLES_PATH = '{MULTIO_INSTALL_DIR}/samples' - OPTIONS_DICTIONARY%SAMPLE_FNAME = 'sample' - OPTIONS_DICTIONARY%PRINT_WHOLE_ERROR_STACK = .FALSE. - OPTIONS_DICTIONARY%PRINT_DICTIONARIES = .FALSE. - OPTIONS_DICTIONARY%GENERATE_TEST_CASES = .FALSE. - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_INIT_DEFAULT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE -#endif - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_INIT_DEFAULT' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_INIT_DEFAULT( OPTIONS_DICTIONARY, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(INOUT) :: OPTIONS_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - OPTIONS_DICTIONARY%ENCODING_RULES_FNAME = '{MULTIO_INSTALL_DIR}/mappings/mapping-rules.yaml' - OPTIONS_DICTIONARY%MAPPING_RULES_FNAME = '{MULTIO_INSTALL_DIR}/encodings/encoding-rules.yaml' - OPTIONS_DICTIONARY%SAMPLES_PATH = '{MULTIO_INSTALL_DIR}/samples' - OPTIONS_DICTIONARY%SAMPLE_FNAME = 'sample' - OPTIONS_DICTIONARY%PRINT_WHOLE_ERROR_STACK = .FALSE. - OPTIONS_DICTIONARY%PRINT_DICTIONARIES = .FALSE. - OPTIONS_DICTIONARY%GENERATE_TEST_CASES = .FALSE. - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_INIT_DEFAULT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_INIT_ITERATOR' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_INIT_ITERATOR( OPTIONS_DICTIONARY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - ITERATOR = 1_JPIB_K - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_INIT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_GET_NEXT_ITERATOR' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_GET_NEXT_ITERATOR( OPTIONS_DICTIONARY, ITERATOR, END_OF_ITERATORS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: END_OF_ITERATORS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - LOGICAL :: HAS_KEY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HAS_ITERATOR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - HAS_KEY = .FALSE. - END_OF_ITERATORS = .FALSE. - DO WHILE(.NOT.HAS_KEY) - - ! Get the next iterator - ITERATOR = ITERATOR + 1 - - ! Check if the iterator is the last one - IF ( ITERATOR .EQ. OPTIONS_ITERATOR_UNDEF ) THEN - END_OF_ITERATORS = .TRUE. - HAS_KEY = .TRUE. - ELSE - PP_TRYCALL(ERRFLAG_HAS_ITERATOR) OPTIONS_DICTIONARY_HAS( OPTIONS_DICTIONARY, ITERATOR, HAS_KEY, HOOKS ) - ENDIF - - ENDDO - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_HAS_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to check if the iterator exists' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_GET_NEXT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_NAME2ITERATOR' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_NAME2ITERATOR( OPTIONS_DICTIONARY, KEY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - CHARACTER(LEN=*), INTENT(IN) :: KEY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=LEN(KEY)) :: KEY_LOW - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_OPTIONS_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Convert to string to lowercase - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( KEY, KEY_LOW, HOOKS ) - - ! Get the iterator from the key name - SELECT CASE ( KEY_LOW ) - - CASE ( 'encoding-rules', 'encoding-file', 'encoding' ) - ITERATOR = OPTIONS_ITERATOR_ENCODING_RULES_FILE - - CASE ( 'mapping-rules', 'mapping-file', 'mapping' ) - ITERATOR = OPTIONS_ITERATOR_MAPPING_RULES_FILE - - CASE ( 'samples-path' ) - ITERATOR = OPTIONS_ITERATOR_SAMPLES_PATH - - CASE ( 'sample-name' ) - ITERATOR = OPTIONS_ITERATOR_SAMPLE_FNAME - - CASE ( 'print-whole-error-stack' ) - ITERATOR = OPTIONS_ITERATOR_PRINT_WHOLE_ERROR_STACK - - CASE ( 'print-dictionaries' ) - ITERATOR = OPTIONS_ITERATOR_PRINT_DICTIONARIES - - CASE ( 'generate-test-cases' ) - ITERATOR = OPTIONS_ITERATOR_GENERATE_TEST_CASES - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_OPTIONS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_CONVERT_LC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert to lowercase' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'key: '//TRIM(ADJUSTL(KEY)) ) - CASE(ERRFLAG_NO_OPTIONS_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'No OPTIONS key found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_NAME2ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_IS_ALLOWED' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_IS_ALLOWED( OPTIONS_DICTIONARY, KEY, IS_ALLOWED, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - CHARACTER(LEN=*), INTENT(IN) :: KEY - LOGICAL, INTENT(OUT) :: IS_ALLOWED - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=LEN(KEY)) :: KEY_LOW - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_OPTIONS_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Convert to string to lowercase - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( KEY, KEY_LOW, HOOKS ) - - ! Get the iterator from the key name - SELECT CASE ( KEY_LOW ) - - CASE ( 'encoding-rules', 'encoding-file', 'encoding' ) - IS_ALLOWED = .TRUE. - - CASE ( 'mapping-rules', 'mapping-file', 'mapping' ) - IS_ALLOWED = .TRUE. - - CASE ( 'samples-path' ) - IS_ALLOWED = .TRUE. - - CASE ( 'sample-name' ) - IS_ALLOWED = .TRUE. - - CASE ( 'print-whole-error-stack' ) - IS_ALLOWED = .TRUE. - - CASE ( 'print-dictionaries' ) - IS_ALLOWED = .TRUE. - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_OPTIONS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_CONVERT_LC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert to lowercase' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'key: '//TRIM(ADJUSTL(KEY)) ) - CASE(ERRFLAG_NO_OPTIONS_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'No OPTIONS key found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_IS_ALLOWED -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_HAS' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_HAS( OPTIONS_DICTIONARY, ITERATOR, HAS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_OPTIONS_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( OPTIONS_ITERATOR_ENCODING_RULES_FILE ) - HAS = .FALSE. - - CASE ( OPTIONS_ITERATOR_MAPPING_RULES_FILE ) - HAS = .FALSE. - - CASE ( OPTIONS_ITERATOR_SAMPLES_PATH ) - HAS = .FALSE. - - CASE ( OPTIONS_ITERATOR_SAMPLE_FNAME ) - HAS = .FALSE. - - CASE ( OPTIONS_ITERATOR_PRINT_WHOLE_ERROR_STACK ) - HAS = .FALSE. - - CASE ( OPTIONS_ITERATOR_PRINT_DICTIONARIES ) - HAS = .FALSE. - - CASE ( OPTIONS_ITERATOR_GENERATE_TEST_CASES ) - HAS = .FALSE. - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_OPTIONS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_OPTIONS_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_HAS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#if 0 -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_RANK' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_RANK( OPTIONS_DICTIONARY, ITERATOR, RANK, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - INTEGER(KIND=JPIB_K), INTENT(OUT) :: RANK - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_OPTIONS_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( OPTIONS_ITERATOR_ENCODING_RULES_FILE ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_MAPPING_RULES_FILE ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_SAMPLES_PATH ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_SAMPLE_FNAME ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_PRINT_WHOLE_ERROR_STACK ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_PRINT_DICTIONARIES ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_GENERATE_TEST_CASES ) - RANK = 0_JPIB_K - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_OPTIONS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_OPTIONS_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_RANK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_SIZE' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_SIZE( OPTIONS_DICTIONARY, ITERATOR, SZ, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - INTEGER(KIND=JPIB_K), INTENT(OUT) :: SZ - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_OPTIONS_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( OPTIONS_ITERATOR_ENCODING_RULES_FILE ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_MAPPING_RULES_FILE ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_SAMPLES_PATH ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_SAMPLE_FNAME ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_PRINT_WHOLE_ERROR_STACK ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_PRINT_DICTIONARIES ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_GENERATE_TEST_CASES ) - SZ = 1_JPIB_K - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_OPTIONS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_OPTIONS_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_SIZE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE -#endif - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_RANK' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_RANK( OPTIONS_DICTIONARY, ITERATOR, RANK, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - INTEGER(KIND=JPIB_K), INTENT(OUT) :: RANK - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_OPTIONS_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( OPTIONS_ITERATOR_ENCODING_RULES_FILE ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_MAPPING_RULES_FILE ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_SAMPLES_PATH ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_SAMPLE_FNAME ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_PRINT_WHOLE_ERROR_STACK ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_PRINT_DICTIONARIES ) - RANK = 0_JPIB_K - - CASE ( OPTIONS_ITERATOR_GENERATE_TEST_CASES ) - RANK = 0_JPIB_K - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_OPTIONS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_OPTIONS_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_RANK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_SIZE' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_SIZE( OPTIONS_DICTIONARY, ITERATOR, SZ, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - INTEGER(KIND=JPIB_K), INTENT(OUT) :: SZ - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_OPTIONS_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( OPTIONS_ITERATOR_ENCODING_RULES_FILE ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_MAPPING_RULES_FILE ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_SAMPLES_PATH ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_SAMPLE_FNAME ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_PRINT_WHOLE_ERROR_STACK ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_PRINT_DICTIONARIES ) - SZ = 1_JPIB_K - - CASE ( OPTIONS_ITERATOR_GENERATE_TEST_CASES ) - SZ = 1_JPIB_K - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_OPTIONS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_OPTIONS_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_SIZE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_GET_KEY_AS_STRING' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_GET_KEY_AS_STRING( OPTIONS_DICTIONARY, ITERATOR, KEY, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=64), INTENT(OUT) :: KEY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_OPTIONS_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_ENUM_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize the value - KEY = REPEAT( ' ', LEN(KEY) ) - - SELECT CASE ( ITERATOR ) - - CASE ( OPTIONS_ITERATOR_ENCODING_RULES_FILE ) - KEY = 'encoding-rules' - - CASE ( OPTIONS_ITERATOR_MAPPING_RULES_FILE ) - KEY = 'mapping-rules' - - CASE ( OPTIONS_ITERATOR_SAMPLES_PATH ) - KEY = 'samples-path' - - CASE ( OPTIONS_ITERATOR_SAMPLE_FNAME ) - KEY = 'sample-fname' - - CASE ( OPTIONS_ITERATOR_PRINT_WHOLE_ERROR_STACK ) - KEY = 'print-whole-error-stack' - - CASE ( OPTIONS_ITERATOR_PRINT_DICTIONARIES ) - KEY = 'print-dictionaries' - - CASE ( OPTIONS_ITERATOR_GENERATE_TEST_CASES ) - KEY = 'generate-test-cases' - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_OPTIONS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_OPTIONS_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_ENUM_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_GET_KEY_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_GET_VALUE_AS_STRING' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_GET_VALUE_AS_STRING( OPTIONS_DICTIONARY, ITERATOR, VALUE, HAS, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: API_GENERAL_UTILS_MOD, ONLY: CONVERT_TO_C_STRING - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: REPLACE_ENVVAR_IN_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(IN) :: OPTIONS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - TYPE(C_PTR), INTENT(OUT) :: VALUE - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=64) :: TMP_VALUE - CHARACTER(LEN=8196) :: CTMP - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_REPLACE_ENVVAR=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_OPTIONS_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_ENUM_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize the value - CTMP = REPEAT( ' ', LEN(CTMP) ) - - SELECT CASE ( ITERATOR ) - - CASE ( OPTIONS_ITERATOR_ENCODING_RULES_FILE ) - CTMP = REPEAT(' ', 8196) - PP_TRYCALL(ERRFLAG_UNABLE_TO_REPLACE_ENVVAR) REPLACE_ENVVAR_IN_STRING( TRIM(OPTIONS_DICTIONARY%ENCODING_RULES_FNAME), CTMP, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(CTMP, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( OPTIONS_ITERATOR_MAPPING_RULES_FILE ) - CTMP = REPEAT(' ', 8196) - PP_TRYCALL(ERRFLAG_UNABLE_TO_REPLACE_ENVVAR) REPLACE_ENVVAR_IN_STRING( TRIM(OPTIONS_DICTIONARY%MAPPING_RULES_FNAME), CTMP, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(CTMP, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( OPTIONS_ITERATOR_SAMPLES_PATH ) - CTMP = REPEAT(' ', 8196) - PP_TRYCALL(ERRFLAG_UNABLE_TO_REPLACE_ENVVAR) REPLACE_ENVVAR_IN_STRING( TRIM(OPTIONS_DICTIONARY%SAMPLES_PATH), CTMP, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(CTMP, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( OPTIONS_ITERATOR_SAMPLE_FNAME ) - CTMP = REPEAT(' ', 8196) - PP_TRYCALL(ERRFLAG_UNABLE_TO_REPLACE_ENVVAR) REPLACE_ENVVAR_IN_STRING( TRIM(OPTIONS_DICTIONARY%SAMPLE_FNAME), CTMP, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(CTMP, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( OPTIONS_ITERATOR_PRINT_WHOLE_ERROR_STACK ) - IF (OPTIONS_DICTIONARY%PRINT_WHOLE_ERROR_STACK) THEN - CTMP='1' - ELSE - CTMP='0' - ENDIF - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(CTMP, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( OPTIONS_ITERATOR_PRINT_DICTIONARIES ) - IF (OPTIONS_DICTIONARY%PRINT_DICTIONARIES) THEN - CTMP='1' - ELSE - CTMP='0' - ENDIF - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(CTMP, VALUE, HOOKS ) - HAS = .TRUE. - - - CASE ( OPTIONS_ITERATOR_GENERATE_TEST_CASES ) - IF (OPTIONS_DICTIONARY%GENERATE_TEST_CASES) THEN - CTMP='1' - ELSE - CTMP='0' - ENDIF - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING(CTMP, VALUE, HOOKS ) - HAS = .TRUE. - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_OPTIONS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_REPLACE_ENVVAR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to replace environment variables' ) - CASE(ERRFLAG_NO_OPTIONS_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_ENUM_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_GET_VALUE_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'OPTIONS_DICTIONARY_SET_VALUE_FROM_STRING' -PP_THREAD_SAFE FUNCTION OPTIONS_DICTIONARY_SET_VALUE_FROM_STRING( OPTIONS_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: CSTREAM2ISTREAM - USE :: ENUMERATORS_MOD, ONLY: CTYPE2ITYPE - USE :: ENUMERATORS_MOD, ONLY: CCLASS2ICLASS - USE :: ENUMERATORS_MOD, ONLY: CLEVTYPE2ILEVTYPE - USE :: ENUMERATORS_MOD, ONLY: CORIGIN2IORIGIN - USE :: ENUMERATORS_MOD, ONLY: CINT2IINT - USE :: ENUMERATORS_MOD, ONLY: CFLOAT2IFLOAT - USE :: ENUMERATORS_MOD, ONLY: CREPRES2IREPRES - USE :: ENUMERATORS_MOD, ONLY: CPACKING2IPACKING - USE :: ENUMERATORS_MOD, ONLY: CMODEL2IMODEL - USE :: ENUMERATORS_MOD, ONLY: CTIME2ITIME - USE :: GRIB_API, ONLY: GRIB_SET_SAMPLES_PATH - USE :: GRIB_API, ONLY: GRIB_SUCCESS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(API_OPTIONS_T), INTENT(INOUT) :: OPTIONS_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=*), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ITEMP - INTEGER(KIND=JPIM_K) :: KRET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_OPTIONS_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_OPTIONS_TO_ENUM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GRIB_SET_SAMPLES_PATH_FAILED=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( OPTIONS_ITERATOR_ENCODING_RULES_FILE ) - OPTIONS_DICTIONARY%ENCODING_RULES_FNAME = REPEAT(' ',8192) - OPTIONS_DICTIONARY%ENCODING_RULES_FNAME = TRIM(ADJUSTL(VALUE)) - - CASE ( OPTIONS_ITERATOR_MAPPING_RULES_FILE ) - OPTIONS_DICTIONARY%MAPPING_RULES_FNAME = REPEAT(' ',8192) - OPTIONS_DICTIONARY%MAPPING_RULES_FNAME = TRIM(ADJUSTL(VALUE)) - - CASE ( OPTIONS_ITERATOR_SAMPLES_PATH ) - CALL GRIB_SET_SAMPLES_PATH( TRIM(ADJUSTL(VALUE)), STATUS=KRET ) - PP_DEBUG_CRITICAL_COND_THROW( KRET.NE.GRIB_SUCCESS, ERRFLAG_GRIB_SET_SAMPLES_PATH_FAILED ) - OPTIONS_DICTIONARY%SAMPLES_PATH = REPEAT(' ',8192) - OPTIONS_DICTIONARY%SAMPLES_PATH = TRIM(ADJUSTL(VALUE)) - - CASE ( OPTIONS_ITERATOR_SAMPLE_FNAME ) - OPTIONS_DICTIONARY%SAMPLE_FNAME = REPEAT(' ',8192) - OPTIONS_DICTIONARY%SAMPLE_FNAME = TRIM(ADJUSTL(VALUE)) - - CASE ( OPTIONS_ITERATOR_PRINT_WHOLE_ERROR_STACK ) - OPTIONS_DICTIONARY%PRINT_WHOLE_ERROR_STACK = .FALSE. - PP_TRYCALL(ERRFLAG_CONVERT_OPTIONS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - OPTIONS_DICTIONARY%PRINT_WHOLE_ERROR_STACK = ITEMP.GT.0 - - CASE ( OPTIONS_ITERATOR_PRINT_DICTIONARIES ) - OPTIONS_DICTIONARY%PRINT_DICTIONARIES = .FALSE. - PP_TRYCALL(ERRFLAG_CONVERT_OPTIONS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - OPTIONS_DICTIONARY%PRINT_DICTIONARIES = ITEMP.GT.0 - - CASE ( OPTIONS_ITERATOR_GENERATE_TEST_CASES ) - OPTIONS_DICTIONARY%GENERATE_TEST_CASES = .FALSE. - PP_TRYCALL(ERRFLAG_CONVERT_OPTIONS_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - OPTIONS_DICTIONARY%GENERATE_TEST_CASES = ITEMP.GT.0 - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_OPTIONS_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_OPTIONS_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE( ERRFLAG_CONVERT_OPTIONS_TO_ENUM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert OPTIONS to enumerator' ) - CASE( ERRFLAG_GRIB_SET_SAMPLES_PATH_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to to set ECCODES_SAMPLES_PATH' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION OPTIONS_DICTIONARY_SET_VALUE_FROM_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE OPTIONS_DICTIONARY_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/options_dictionary_wrapper_mod.F90 b/src/multiom/encoders/api/dictionaries/options_dictionary_wrapper_mod.F90 deleted file mode 100644 index ff67f427d..000000000 --- a/src/multiom/encoders/api/dictionaries/options_dictionary_wrapper_mod.F90 +++ /dev/null @@ -1,801 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'opt_dictionary_wrapper_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'OPT_DICTIONARY_WRAPPER_MOD' -MODULE OPT_DICTIONARY_WRAPPER_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - - ! Symbols imported from other modules within the project. - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - -IMPLICIT NONE - - !> Default module visibnility - PRIVATE - - !> OPT_DICTIONARY index used used to identify the opt_dictionary wrapper - INTEGER(KIND=JPIB_K), PARAMETER :: OPT_DICTIONARY_IDX_E = 100_JPIB_K - - !> Class used as a wrapper for the opt_dictionary - TYPE :: OPT_DICTIONARY_CONTAINER_T - TYPE(API_OPTIONS_T), POINTER :: OPT_DICTIONARY => NULL() - END TYPE - - !> Whitelist of public symbols - PUBLIC :: OPT_DICTIONARY_IDX_E - - PUBLIC :: MAKE_OPT_DICTIONARY - PUBLIC :: FREE_OPT_DICTIONARY - PUBLIC :: EXTRACT_OPT_DICTIONARY - -CONTAINS - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_OPT_DICTIONARY' -PP_THREAD_SAFE FUNCTION MAKE_OPT_DICTIONARY( WRAPPED_OPT_DICTIONARY, & -& HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_OPT_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(API_OPTIONS_T), POINTER :: OPT_DICTIONARY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_OPT_DICTIONARY_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CREATE_OPT_DICTIONARY=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZE_OPT_DICTIONARY=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INJECT_CHECKSUM=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_OPT_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED ) - - !> Initialize the opt_dictionary - OPT_DICTIONARY => NULL() - - !> Create the opt_dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_CREATE_OPT_DICTIONARY) CREATE_OPT_DICTIONARY( & -& WRAPPED_OPT_DICTIONARY, OPT_DICTIONARY, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(OPT_DICTIONARY), ERRFLAG_OPT_DICTIONARY_NOT_ASSOCIATED ) - - ! Initialize the opt_dictionary - ! PP_TRYCALL(ERRFLAG_INITIALIZE_OPT_DICTIONARY) OPT_DICTIONARY%INIT( HOOKS ) - - ! Inject checksum - PP_TRYCALL(ERRFLAG_INJECT_CHECKSUM) INJECT_CHECKSUM_OPT_DICTIONARY( WRAPPED_OPT_DICTIONARY, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'OPT_DICTIONARY already associated at function entry' ) - CASE (ERRFLAG_OPT_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'OPT_DICTIONARY not associated after allocation' ) - CASE (ERRFLAG_UNABLE_TO_CREATE_OPT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract opt_dictionary' ) - CASE (ERRFLAG_INITIALIZE_OPT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to initialize opt_dictionary' ) - CASE (ERRFLAG_INJECT_CHECKSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_OPT_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'FREE_OPT_DICTIONARY' -PP_THREAD_SAFE FUNCTION FREE_OPT_DICTIONARY( WRAPPED_OPT_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_FREE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_OPT_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(API_OPTIONS_T), POINTER :: OPT_DICTIONARY - TYPE(OPT_DICTIONARY_CONTAINER_T) :: OPT_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: OPT_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(OPT_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_OPT_DICTIONARY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_OPT_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_OPT_DICTIONARY=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE_OPT_DICTIONARY=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_WRAPPER=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_OPT_DICTIONARY=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_OPT_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_OPT_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. OPT_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - OPT_DICTIONARY_CONTAINER = TRANSFER( BUFFER, OPT_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(OPT_DICTIONARY_CONTAINER%OPT_DICTIONARY), ERRFLAG_OPT_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the opt_dictionary pointer - OPT_DICTIONARY => OPT_DICTIONARY_CONTAINER%OPT_DICTIONARY - - ! Print the opt_dictionary to be freed - !! MIVAL: This is a debug print statement that should be enable to debug the c/fortran interoperability - !! PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_OPT_DICTIONARY) OPT_DICTIONARY%PRINT( 6_JPIB_K, 0_JPIB_K, HOOKS ) - ! Free the opt_dictionary - ! PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_OPT_DICTIONARY) OPT_DICTIONARY%FREE( HOOKS ) - - ! Deallocate the opt_dictionary - DEALLOCATE( OPT_DICTIONARY_CONTAINER%OPT_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_DEALLOCATE_OPT_DICTIONARY ) - OPT_DICTIONARY_CONTAINER%OPT_DICTIONARY => NULL() - OPT_DICTIONARY => NULL() - - ! Error handling - BUFFER = 0_C_INT8_T - - ! Free the wrapper - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_WRAPPER) F_C_FREE_WRAPPER( & -& WRAPPER, HOOKS ) - WRAPPER => NULL() - BUFFER => NULL() - - ! Reset the c pointer - WRAPPED_OPT_DICTIONARY = C_NULL_PTR - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_OPT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract opt_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_OPT_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'OPT_DICTIONARY not associated' ) - CASE (ERRFLAG_UNABLE_TO_FREE_OPT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free opt_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE_OPT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to deallocate opt_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_FREE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free wrapper' ) - CASE (ERRFLAG_UNABLE_TO_PRINT_OPT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to print opt_dictionary' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION FREE_OPT_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CREATE_OPT_DICTIONARY' -PP_THREAD_SAFE FUNCTION CREATE_OPT_DICTIONARY( WRAPPED_OPT_DICTIONARY, OPT_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_OPT_DICTIONARY - TYPE(API_OPTIONS_T), POINTER, INTENT(INOUT) :: OPT_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(OPT_DICTIONARY_CONTAINER_T) :: OPT_DICTIONARY_CONTAINER - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: OPT_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(OPT_DICTIONARY_CONTAINER) / 8_JPIB_K - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_OPT_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_OPT_DICTIONARY=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_OPT_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(OPT_DICTIONARY), ERRFLAG_OPT_DICTIONARY_ALREADY_ASSOCIATED) - - ! Allocate the opt_dictionary - ALLOCATE( OPT_DICTIONARY_CONTAINER%OPT_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_ALLOCATE_OPT_DICTIONARY ) - - ! Allocate the wrapper - WRAPPER => NULL() - BUFFER => NULL() - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) F_C_ALLOCATE_WRAPPER( & -& WRAPPER, BUFFER, OPT_DICTIONARY_IDX_E, OPT_DICTIONARY_CONTAINER_BYTE_SIZE, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - - ! Wrap the opt_dictionary in order to be able to expose it to c - BUFFER = TRANSFER(OPT_DICTIONARY_CONTAINER, BUFFER, OPT_DICTIONARY_CONTAINER_BYTE_SIZE ) - - ! Set the return arguments - OPT_DICTIONARY => OPT_DICTIONARY_CONTAINER%OPT_DICTIONARY - WRAPPED_OPT_DICTIONARY = C_LOC(WRAPPER) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper already associated' ) - CASE (ERRFLAG_OPT_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'OPT_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_OPT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate opt_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate wrapper' ) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated after allocation' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated after allocation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CREATE_OPT_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'INJECT_CHECKSUM_OPT_DICTIONARY' -PP_THREAD_SAFE FUNCTION INJECT_CHECKSUM_OPT_DICTIONARY( WRAPPED_OPT_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_INJECT_CHECKSUM_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_OPT_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_OPT_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_OPT_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - PP_TRYCALL(ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) F_C_INJECT_CHECKSUM_WRAPPER( WRAPPER, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION INJECT_CHECKSUM_OPT_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'EXTRACT_OPT_DICTIONARY' -PP_THREAD_SAFE FUNCTION EXTRACT_OPT_DICTIONARY( WRAPPED_OPT_DICTIONARY, OPT_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_OPT_DICTIONARY - TYPE(API_OPTIONS_T), POINTER, INTENT(INOUT) :: OPT_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(OPT_DICTIONARY_CONTAINER_T) :: OPT_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: OPT_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(OPT_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_OPT_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_OPT_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_OPT_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(OPT_DICTIONARY), ERRFLAG_OPT_DICTIONARY_ALREADY_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_OPT_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. OPT_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - OPT_DICTIONARY_CONTAINER = TRANSFER( BUFFER, OPT_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(OPT_DICTIONARY_CONTAINER%OPT_DICTIONARY), ERRFLAG_OPT_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the opt_dictionary pointer - OPT_DICTIONARY => OPT_DICTIONARY_CONTAINER%OPT_DICTIONARY - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_OPT_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'OPT_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_OPT_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'OPT_DICTIONARY not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION EXTRACT_OPT_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE OPT_DICTIONARY_WRAPPER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/par_dictionary_utils_mod.F90 b/src/multiom/encoders/api/dictionaries/par_dictionary_utils_mod.F90 deleted file mode 100644 index f1ededc11..000000000 --- a/src/multiom/encoders/api/dictionaries/par_dictionary_utils_mod.F90 +++ /dev/null @@ -1,2255 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'par_dictionary_utils_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'PAR_DICTIONARY_UTILS_MOD' -MODULE PAR_DICTIONARY_UTILS_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -!> Enumerators for the iterator -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_TABLES_VERSION = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_GENERATING_PROCESS_IDENTIFIER = 2_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_TYPE_OF_PROCESSED_DATA = 3_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_ENCODE_STEP_ZERO = 4_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_INITIAL_STEP = 5_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_LENGTH_OF_TIME_STEP = 6_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_LENGTH_OF_TIME_RANGE = 7_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_VALUES_SCALE_FACTOR = 8_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_PV = 9_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_NUMBER_OF_MISSING_VALUES = 10_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_VALUE_OF_MISSING_VALUES = 11_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_TYPE_OF_ENSEMBLE_FORECAST = 12_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_NUMBER_OF_FORECASTS_IN_ENSEMBLE = 13_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_LENGTH_OF_TIME_WINDOW = 14_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_BITS_PER_VALUE = 15_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_LAPLACIAN_SCALING_FACTOR = 16_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_PERIOD_MIN = 17_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_PERIOD_MAX = 18_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_PERIOD_SCALE_FACTOR_DIR = 19_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_PERIOD_SCALE_FACTOR_FREQ = 20_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_DIR = 21_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_FREQ = 22_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_SATELLITE_SERIES = 23_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_SCALED_FACTOR_OF_CENTRAL_WAVE_NUMBER = 24_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_SCALED_VALUE_OF_CENTRAL_WAVE_NUMBER = 25_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_GEOMETRY = 26_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_DESTINE_LOCAL_VERSION = 27_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: PAR_ITERATOR_UNDEF = 28_JPIB_K - -! Whitelist of public symbols -PUBLIC :: PAR_DICTIONARY_MAX_ITERATOR -PUBLIC :: PAR_DICTIONARY_INIT_ITERATOR -PUBLIC :: PAR_DICTIONARY_NAME2ITERATOR -PUBLIC :: PAR_DICTIONARY_GET_NEXT_ITERATOR -PUBLIC :: PAR_DICTIONARY_HAS -PUBLIC :: PAR_DICTIONARY_GET_KEY_AS_STRING -PUBLIC :: PAR_DICTIONARY_GET_VALUE_AS_STRING -PUBLIC :: PAR_DICTIONARY_SET_VALUE_FROM_STRING -PUBLIC :: PAR_DICTIONARY_SET_VALUE_FROM_INT64 -PUBLIC :: PAR_DICTIONARY_SET_VALUE_FROM_REAL64 -PUBLIC :: PAR_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -PUBLIC :: PAR_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_MAX_ITERATOR' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_MAX_ITERATOR( PAR_DICTIONARY, MAX_ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: MAX_ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - MAX_ITERATOR = PAR_ITERATOR_UNDEF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_MAX_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_INIT_ITERATOR' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_INIT_ITERATOR( PAR_DICTIONARY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - ITERATOR = 1_JPIB_K - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_INIT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_GET_NEXT_ITERATOR' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_GET_NEXT_ITERATOR( PAR_DICTIONARY, ITERATOR, END_OF_ITERATORS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: END_OF_ITERATORS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - LOGICAL :: HAS_KEY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HAS_ITERATOR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - HAS_KEY = .FALSE. - END_OF_ITERATORS = .FALSE. - DO WHILE(.NOT.HAS_KEY) - - ! Get the next iterator - ITERATOR = ITERATOR + 1 - - ! Check if the iterator is the last one - IF ( ITERATOR .EQ. PAR_ITERATOR_UNDEF ) THEN - END_OF_ITERATORS = .TRUE. - HAS_KEY = .TRUE. - ELSE - PP_TRYCALL(ERRFLAG_HAS_ITERATOR) PAR_DICTIONARY_HAS( PAR_DICTIONARY, ITERATOR, HAS_KEY, HOOKS ) - ENDIF - - ENDDO - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_HAS_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to check if the iterator exists' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_GET_NEXT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_NAME2ITERATOR' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_NAME2ITERATOR( PAR_DICTIONARY, KEY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR_DICTIONARY - CHARACTER(LEN=*), INTENT(IN) :: KEY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=LEN(KEY)) :: KEY_LOW - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_PAR_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Convert to string to lowercase - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( KEY, KEY_LOW, HOOKS ) - - ! Get the iterator from the key name - SELECT CASE ( KEY_LOW ) - - CASE ( 'tablesversion', 'tables-version' ) - ITERATOR = PAR_ITERATOR_TABLES_VERSION - - CASE ( 'generatingprocessidentifier', 'generating-process-identifier' ) - ITERATOR = PAR_ITERATOR_GENERATING_PROCESS_IDENTIFIER - - CASE ( 'typeofprocesseddata', 'type-of-processed-data' ) - ITERATOR = PAR_ITERATOR_TYPE_OF_PROCESSED_DATA - - CASE ( 'encodestepzero', 'encode-step-zero' ) - ITERATOR = PAR_ITERATOR_ENCODE_STEP_ZERO - - CASE ( 'initialstep', 'initial-step' ) - ITERATOR = PAR_ITERATOR_INITIAL_STEP - - CASE ( 'lengthoftimestepinseconds', 'length-of-time-step-in-seconds', 'timeincrementinseconds' ) - ITERATOR = PAR_ITERATOR_LENGTH_OF_TIME_STEP - - CASE ( 'lengthoftimerangeinseconds', 'length-of-time-range-in-seconds' ) - ITERATOR = PAR_ITERATOR_LENGTH_OF_TIME_RANGE - - CASE ( 'valuesscalefactor', 'values-scale-factor' ) - ITERATOR = PAR_ITERATOR_VALUES_SCALE_FACTOR - - CASE ( 'pv' ) - ITERATOR = PAR_ITERATOR_PV - - ! number of missing values is only used to check if bitmap is given. With the migration we will only use bitmapPresent. - ! This is a hack but currently both values have the same meaning - CASE ( 'numberofmissingvalues', 'number-of-missing-values', 'bitmappresent' ) - ITERATOR = PAR_ITERATOR_NUMBER_OF_MISSING_VALUES - - CASE ( 'valueofmissingvalues', 'value-of-missing-values', 'missingvalue' ) - ITERATOR = PAR_ITERATOR_VALUE_OF_MISSING_VALUES - - CASE ( 'typeofensembleforecast', 'type-of-ensemble-forecast' ) - ITERATOR = PAR_ITERATOR_TYPE_OF_ENSEMBLE_FORECAST - - CASE ( 'numberofforecastsinensemble', 'number-of-forecasts-in-ensemble' ) - ITERATOR = PAR_ITERATOR_NUMBER_OF_FORECASTS_IN_ENSEMBLE - - CASE ( 'lengthoftimewindow', 'length-of-time-window' ) - ITERATOR = PAR_ITERATOR_LENGTH_OF_TIME_WINDOW - - CASE ( 'bitspervalue', 'bits-per-value' ) - ITERATOR = PAR_ITERATOR_BITS_PER_VALUE - - CASE ( 'laplacianscalingfactor', 'laplacian-scaling-factor', 'laplacianoperator' ) - ITERATOR = PAR_ITERATOR_LAPLACIAN_SCALING_FACTOR - - CASE ( 'periodmin', 'period-min' ) - ITERATOR = PAR_ITERATOR_PERIOD_MIN - - CASE ( 'periodmax', 'period-max' ) - ITERATOR = PAR_ITERATOR_PERIOD_MAX - - CASE ( 'scalefactorofwavedirections', 'scale-factor-of-wave-directions' ) - ITERATOR = PAR_ITERATOR_PERIOD_SCALE_FACTOR_DIR - - CASE ( 'scalefactorofwavefrequencies', 'scale-factor-of-wave-frequencies' ) - ITERATOR = PAR_ITERATOR_PERIOD_SCALE_FACTOR_FREQ - - CASE ( 'wavedirections', 'wave-directions' ) - ITERATOR = PAR_ITERATOR_DIR - - CASE ( 'wavefrequencies', 'wave-frequencies' ) - ITERATOR = PAR_ITERATOR_FREQ - - CASE ( 'satelliteseries', 'satellite-series' ) - ITERATOR = PAR_ITERATOR_SATELLITE_SERIES - - CASE ( 'scaledfactorofcentralwavenumber', 'scaled-factor-of-central-wave-number' ) - ITERATOR = PAR_ITERATOR_SCALED_FACTOR_OF_CENTRAL_WAVE_NUMBER - - CASE ( 'scaledvalueofcentralwavenumber', 'scaled-value-of-central-wave-number' ) - ITERATOR = PAR_ITERATOR_SCALED_VALUE_OF_CENTRAL_WAVE_NUMBER - - CASE ( 'geometry' ) - ITERATOR = PAR_ITERATOR_GEOMETRY - - CASE ( 'destinelocalversion', 'destine-local-version' ) - ITERATOR = PAR_ITERATOR_DESTINE_LOCAL_VERSION - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_PAR_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_CONVERT_LC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert to lowercase' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'key: '//TRIM(ADJUSTL(KEY)) ) - CASE(ERRFLAG_NO_PAR_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'No PAR key found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'key: '//TRIM(ADJUSTL(KEY)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_NAME2ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_HAS' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_HAS( PAR_DICTIONARY, ITERATOR, HAS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_PAR_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE (PAR_ITERATOR_TABLES_VERSION) - IF ( PAR_DICTIONARY%TABLES_VERSION .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_GENERATING_PROCESS_IDENTIFIER) - IF ( PAR_DICTIONARY%GENERATING_PROCESS_IDENTIFIER .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_TYPE_OF_PROCESSED_DATA) - IF ( PAR_DICTIONARY%TYPE_OF_PROCESSED_DATA .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_ENCODE_STEP_ZERO) - IF ( PAR_DICTIONARY%ENCODE_STEP_ZERO .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_INITIAL_STEP) - IF ( PAR_DICTIONARY%TIME%INITIAL_STEP_ .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_STEP) - IF ( PAR_DICTIONARY%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_ .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_RANGE) - IF ( PAR_DICTIONARY%TIME%LENGTH_OF_TIME_RANGE_IN_SECONDS_ .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_VALUES_SCALE_FACTOR) - IF ( PAR_DICTIONARY%VALUES_SCALE_FACTOR .NE. 1.0_JPRD_K ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_PV) - IF ( ASSOCIATED(PAR_DICTIONARY%LEVELS%PV) ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_NUMBER_OF_MISSING_VALUES) - IF ( PAR_DICTIONARY%BITMAP%NUMBER_OF_MISSING_VALUES_ .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_VALUE_OF_MISSING_VALUES) - HAS = .TRUE. - - CASE (PAR_ITERATOR_TYPE_OF_ENSEMBLE_FORECAST) - IF ( PAR_DICTIONARY%ENSEMBLE%TYPE_OF_ENSEMBLE_FORECAST_ .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_NUMBER_OF_FORECASTS_IN_ENSEMBLE) - IF ( PAR_DICTIONARY%ENSEMBLE%NUMBER_OF_FORECASTS_IN_ENSEMBLE_ .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_WINDOW) - IF ( PAR_DICTIONARY%ANALYSIS%LENGTH_OF_TIME_WINDOW_ .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - - CASE (PAR_ITERATOR_BITS_PER_VALUE) - IF ( PAR_DICTIONARY%DATA_REPRESENTATION%BITS_PER_VALUE_ .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - - CASE (PAR_ITERATOR_LAPLACIAN_SCALING_FACTOR) - IF ( PAR_DICTIONARY%DATA_REPRESENTATION%LAPLACIAN_SCALE_FACTOR_ .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - - CASE (PAR_ITERATOR_PERIOD_MIN) - IF ( PAR_DICTIONARY%WAVE%ITMIN .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_PERIOD_MAX) - IF ( PAR_DICTIONARY%WAVE%ITMAX .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - - CASE (PAR_ITERATOR_PERIOD_SCALE_FACTOR_DIR) - IF ( PAR_DICTIONARY%WAVE%SCALE_FACTOR_OF_WAVE_DIRECTIONS .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_PERIOD_SCALE_FACTOR_FREQ) - IF ( PAR_DICTIONARY%WAVE%SCALE_FACTOR_OF_WAVE_FREQUENCIES .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_DIR) - IF ( ASSOCIATED(PAR_DICTIONARY%WAVE%DIRS_) ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_FREQ) - IF ( ASSOCIATED(PAR_DICTIONARY%WAVE%FREQ_) ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_SATELLITE_SERIES) - IF ( PAR_DICTIONARY%SATELLITE%SATELLITE_SERIES .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_SCALED_FACTOR_OF_CENTRAL_WAVE_NUMBER) - IF ( PAR_DICTIONARY%SATELLITE%SCALED_FACTOR_OF_CENTRAL_VAWENUMBER .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_SCALED_VALUE_OF_CENTRAL_WAVE_NUMBER) - IF ( PAR_DICTIONARY%SATELLITE%SCALED_VALUE_OF_CENTRAL_VAWENUMBER .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_GEOMETRY) - IF ( ASSOCIATED(PAR_DICTIONARY%GEOMETRY%REPRES) ) THEN - ! WRITE(6_JPIB_K,*) 'GEOMETRY TO YAML: ' - ! RET = PAR_DICTIONARY%GEOMETRY%REPRES%WRITE_TO_YAML( 6_JPIB_K, 0_JPIB_K, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_DESTINE_LOCAL_VERSION) - IF ( PAR_DICTIONARY%DESTINE_LOCAL_VERSION .NE. UNDEF_PARAM_E ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_PAR_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_PAR_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_HAS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_GET_KEY_AS_STRING' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_GET_KEY_AS_STRING( PAR_DICTIONARY, ITERATOR, KEY, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=64), INTENT(OUT) :: KEY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_PAR_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_ENUM_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize the value - KEY = REPEAT( ' ', LEN(KEY) ) - - SELECT CASE ( ITERATOR ) - - CASE (PAR_ITERATOR_TABLES_VERSION) - KEY = 'tables-version' - - CASE (PAR_ITERATOR_GENERATING_PROCESS_IDENTIFIER) - KEY = 'generating-process-identifier' - - CASE (PAR_ITERATOR_TYPE_OF_PROCESSED_DATA) - KEY = 'type-of-processed-data' - - CASE (PAR_ITERATOR_ENCODE_STEP_ZERO) - KEY = 'encode-step-zero' - - CASE (PAR_ITERATOR_INITIAL_STEP) - KEY = 'initial-step' - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_STEP) - KEY = 'length-of-time-step' - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_RANGE) - KEY = 'length-of-time-range' - - CASE (PAR_ITERATOR_VALUES_SCALE_FACTOR) - KEY = 'values-scale-factor' - - CASE (PAR_ITERATOR_PV) - KEY = 'pv' - - CASE (PAR_ITERATOR_NUMBER_OF_MISSING_VALUES) - KEY = 'number-of-missing-values' - - CASE (PAR_ITERATOR_VALUE_OF_MISSING_VALUES) - KEY = 'value-of-missing-values' - - CASE (PAR_ITERATOR_TYPE_OF_ENSEMBLE_FORECAST) - KEY = 'type-of-ensemble-forecast' - - CASE (PAR_ITERATOR_NUMBER_OF_FORECASTS_IN_ENSEMBLE) - KEY = 'number-of-forecasts-in-ensemble' - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_WINDOW) - KEY = 'length-of-time-window' - - CASE (PAR_ITERATOR_BITS_PER_VALUE) - KEY = 'bits-per-value' - - CASE (PAR_ITERATOR_LAPLACIAN_SCALING_FACTOR) - KEY = 'laplacian-scaling-factor' - - CASE (PAR_ITERATOR_PERIOD_MIN) - KEY = 'period-min' - - CASE (PAR_ITERATOR_PERIOD_MAX) - KEY = 'period-max' - - CASE (PAR_ITERATOR_PERIOD_SCALE_FACTOR_DIR) - KEY = 'scale-factor-of-wave-directions' - - CASE (PAR_ITERATOR_PERIOD_SCALE_FACTOR_FREQ) - KEY = 'scale-factor-of-wave-frequencies' - - CASE (PAR_ITERATOR_DIR) - KEY = 'wave-directions' - - CASE (PAR_ITERATOR_FREQ) - KEY = 'wave-frequencies' - - CASE (PAR_ITERATOR_SATELLITE_SERIES) - KEY = 'satellite-series' - - CASE (PAR_ITERATOR_SCALED_FACTOR_OF_CENTRAL_WAVE_NUMBER) - KEY = 'scaled-factor-of-central-wave-number' - - CASE (PAR_ITERATOR_SCALED_VALUE_OF_CENTRAL_WAVE_NUMBER) - KEY = 'scaled-value-of-central-wave-number' - - CASE (PAR_ITERATOR_GEOMETRY) - KEY = 'geometry' - - CASE (PAR_ITERATOR_DESTINE_LOCAL_VERSION) - KEY = 'destine-local-version' - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_PAR_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_PAR_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_ENUM_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_GET_KEY_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_GET_VALUE_AS_STRING' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_GET_VALUE_AS_STRING( PAR_DICTIONARY, ITERATOR, VALUE, HAS, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: API_GENERAL_UTILS_MOD, ONLY: CONVERT_TO_C_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - TYPE(C_PTR), INTENT(INOUT) :: VALUE - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_PAR_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_ENUM_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - - CASE (PAR_ITERATOR_TABLES_VERSION) - IF ( PAR_DICTIONARY%TABLES_VERSION .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%TABLES_VERSION, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_GENERATING_PROCESS_IDENTIFIER) - IF ( PAR_DICTIONARY%GENERATING_PROCESS_IDENTIFIER .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%GENERATING_PROCESS_IDENTIFIER, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_TYPE_OF_PROCESSED_DATA) - IF ( PAR_DICTIONARY%TYPE_OF_PROCESSED_DATA .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%TYPE_OF_PROCESSED_DATA, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_ENCODE_STEP_ZERO) - IF ( PAR_DICTIONARY%ENCODE_STEP_ZERO .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%ENCODE_STEP_ZERO, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_INITIAL_STEP) - IF ( PAR_DICTIONARY%TIME%INITIAL_STEP_ .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%TIME%INITIAL_STEP_, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_STEP) - IF ( PAR_DICTIONARY%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_ .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_RANGE) - IF ( PAR_DICTIONARY%TIME%LENGTH_OF_TIME_RANGE_IN_SECONDS_ .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%TIME%LENGTH_OF_TIME_RANGE_IN_SECONDS_, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_VALUES_SCALE_FACTOR) - IF ( PAR_DICTIONARY%VALUES_SCALE_FACTOR .NE. 1.0_JPRD_K ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%VALUES_SCALE_FACTOR, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_PV) - IF ( ASSOCIATED(PAR_DICTIONARY%LEVELS%PV) ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%LEVELS%PV, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_NUMBER_OF_MISSING_VALUES) - IF ( PAR_DICTIONARY%BITMAP%NUMBER_OF_MISSING_VALUES_ .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%BITMAP%NUMBER_OF_MISSING_VALUES_, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_VALUE_OF_MISSING_VALUES) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%BITMAP%VALUE_OF_MISSING_VALUES_, VALUE, HOOKS ) - HAS = .TRUE. - - CASE (PAR_ITERATOR_TYPE_OF_ENSEMBLE_FORECAST) - IF ( PAR_DICTIONARY%ENSEMBLE%TYPE_OF_ENSEMBLE_FORECAST_ .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%ENSEMBLE%TYPE_OF_ENSEMBLE_FORECAST_, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_NUMBER_OF_FORECASTS_IN_ENSEMBLE) - IF ( PAR_DICTIONARY%ENSEMBLE%NUMBER_OF_FORECASTS_IN_ENSEMBLE_ .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%ENSEMBLE%NUMBER_OF_FORECASTS_IN_ENSEMBLE_, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_WINDOW) - IF ( PAR_DICTIONARY%ANALYSIS%LENGTH_OF_TIME_WINDOW_ .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%ANALYSIS%LENGTH_OF_TIME_WINDOW_, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_BITS_PER_VALUE) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%DATA_REPRESENTATION%BITS_PER_VALUE_, VALUE, HOOKS ) - HAS = .TRUE. - - CASE (PAR_ITERATOR_LAPLACIAN_SCALING_FACTOR) - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%DATA_REPRESENTATION%LAPLACIAN_SCALE_FACTOR_, VALUE, HOOKS ) - HAS = .TRUE. - - CASE (PAR_ITERATOR_PERIOD_MIN) - IF ( PAR_DICTIONARY%WAVE%ITMIN .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%WAVE%ITMIN, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_PERIOD_MAX) - IF ( PAR_DICTIONARY%WAVE%ITMAX .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%WAVE%ITMAX, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_PERIOD_SCALE_FACTOR_DIR) - IF ( PAR_DICTIONARY%WAVE%SCALE_FACTOR_OF_WAVE_DIRECTIONS .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%WAVE%SCALE_FACTOR_OF_WAVE_DIRECTIONS, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_PERIOD_SCALE_FACTOR_FREQ) - IF ( PAR_DICTIONARY%WAVE%SCALE_FACTOR_OF_WAVE_FREQUENCIES .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%WAVE%SCALE_FACTOR_OF_WAVE_FREQUENCIES, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_DIR) - IF ( ASSOCIATED(PAR_DICTIONARY%WAVE%DIRS_) ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%WAVE%DIRS_, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_FREQ) - IF ( ASSOCIATED(PAR_DICTIONARY%WAVE%FREQ_) ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%WAVE%FREQ_, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_SATELLITE_SERIES) - IF ( PAR_DICTIONARY%SATELLITE%SATELLITE_SERIES .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%SATELLITE%SATELLITE_SERIES, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_SCALED_FACTOR_OF_CENTRAL_WAVE_NUMBER) - IF ( PAR_DICTIONARY%SATELLITE%SCALED_FACTOR_OF_CENTRAL_VAWENUMBER .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%SATELLITE%SCALED_FACTOR_OF_CENTRAL_VAWENUMBER, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_SCALED_VALUE_OF_CENTRAL_WAVE_NUMBER) - IF ( PAR_DICTIONARY%SATELLITE%SCALED_VALUE_OF_CENTRAL_VAWENUMBER .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%SATELLITE%SCALED_VALUE_OF_CENTRAL_VAWENUMBER, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE (PAR_ITERATOR_DESTINE_LOCAL_VERSION) - IF ( PAR_DICTIONARY%DESTINE_LOCAL_VERSION .NE. UNDEF_PARAM_E ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_ENUM_STRING) CONVERT_TO_C_STRING( PAR_DICTIONARY%DESTINE_LOCAL_VERSION, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_PAR_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_PAR_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_ENUM_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_GET_VALUE_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_SET_VALUE_FROM_STRING' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_SET_VALUE_FROM_STRING( PAR_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: CINT2IINT - USE :: ENUMERATORS_MOD, ONLY: CFLOAT2IFLOAT - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_REAL_ARRAY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(INOUT) :: PAR_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=*), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ITEMP - REAL(KIND=JPRD_K) :: FTEMP - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - REAL(KIND=JPRD_K), DIMENSION(:), ALLOCATABLE :: F_ARR - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_PAR_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_PAR_TO_ENUM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_PAR=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOC_FAILURE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOC_FAILURE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE (PAR_ITERATOR_TABLES_VERSION) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%TABLES_VERSION=ITEMP - - CASE (PAR_ITERATOR_GENERATING_PROCESS_IDENTIFIER) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%GENERATING_PROCESS_IDENTIFIER=ITEMP - - CASE (PAR_ITERATOR_TYPE_OF_PROCESSED_DATA) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%TYPE_OF_PROCESSED_DATA=ITEMP - - CASE (PAR_ITERATOR_ENCODE_STEP_ZERO) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%ENCODE_STEP_ZERO=ITEMP - - CASE (PAR_ITERATOR_INITIAL_STEP) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%TIME%SET_INITIAL_STEP(ITEMP, HOOKS) - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_STEP) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%TIME%SET_LENGTH_OF_TIME_STEP_IN_SECONDS(ITEMP, HOOKS) - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_RANGE) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%TIME%SET_LENGTH_OF_TIME_RANGE_IN_SECONDS(ITEMP, HOOKS) - - CASE (PAR_ITERATOR_VALUES_SCALE_FACTOR) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - PAR_DICTIONARY%VALUES_SCALE_FACTOR=FTEMP - - CASE (PAR_ITERATOR_PV) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) STRING_TO_REAL_ARRAY(VALUE, F_ARR, HOOKS) - - IF ( ASSOCIATED(PAR_DICTIONARY%LEVELS%PV) ) THEN - DEALLOCATE(PAR_DICTIONARY%LEVELS%PV, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - ENDIF - - ALLOCATE( PAR_DICTIONARY%LEVELS%PV(SIZE(F_ARR) ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_ALLOC_FAILURE ) - DO ITEMP = 1, SIZE(F_ARR) - PAR_DICTIONARY%LEVELS%PV(ITEMP) = F_ARR(ITEMP) - END DO - PAR_DICTIONARY%LEVELS%TO_BE_DEALLOCATED=.TRUE. - - DEALLOCATE( F_ARR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - - CASE (PAR_ITERATOR_NUMBER_OF_MISSING_VALUES) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%BITMAP%SET_NUMBER_OF_MISSING_VALUES(ITEMP, HOOKS) - - CASE (PAR_ITERATOR_VALUE_OF_MISSING_VALUES) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%BITMAP%SET_VALUE_OF_MISSING_VALUES(FTEMP, HOOKS) - - CASE (PAR_ITERATOR_TYPE_OF_ENSEMBLE_FORECAST) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%ENSEMBLE%SET_TYPE_OF_ENSEMBLE_FORECAST(ITEMP, HOOKS) - - CASE (PAR_ITERATOR_NUMBER_OF_FORECASTS_IN_ENSEMBLE) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%ENSEMBLE%SET_NUMBER_OF_FORECASTS_IN_ENSEMBLE(ITEMP, HOOKS) - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_WINDOW) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%ANALYSIS%LENGTH_OF_TIME_WINDOW_ = ITEMP - - CASE (PAR_ITERATOR_BITS_PER_VALUE) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%DATA_REPRESENTATION%BITS_PER_VALUE_ = ITEMP - - CASE (PAR_ITERATOR_LAPLACIAN_SCALING_FACTOR) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - PAR_DICTIONARY%DATA_REPRESENTATION%LAPLACIAN_SCALE_FACTOR_ = FTEMP - - CASE (PAR_ITERATOR_PERIOD_MIN) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%WAVE%ITMIN = ITEMP - - CASE (PAR_ITERATOR_PERIOD_MAX) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%WAVE%ITMAX = ITEMP - - CASE (PAR_ITERATOR_PERIOD_SCALE_FACTOR_DIR) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%WAVE%SCALE_FACTOR_OF_WAVE_DIRECTIONS = ITEMP - - CASE (PAR_ITERATOR_PERIOD_SCALE_FACTOR_FREQ) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%WAVE%SCALE_FACTOR_OF_WAVE_FREQUENCIES = ITEMP - - CASE (PAR_ITERATOR_DIR) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) STRING_TO_REAL_ARRAY(VALUE, F_ARR, HOOKS) - - IF ( ASSOCIATED(PAR_DICTIONARY%WAVE%DIRS_) ) THEN - DEALLOCATE(PAR_DICTIONARY%WAVE%DIRS_, STAT=ALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - ENDIF - - ALLOCATE( PAR_DICTIONARY%WAVE%DIRS_(SIZE(F_ARR) ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_ALLOC_FAILURE ) - DO ITEMP = 1, SIZE(F_ARR) - PAR_DICTIONARY%WAVE%DIRS_(ITEMP) = F_ARR(ITEMP) - END DO - PAR_DICTIONARY%LEVELS%TO_BE_DEALLOCATED=.TRUE. - - DEALLOCATE( F_ARR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - - CASE (PAR_ITERATOR_FREQ) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) STRING_TO_REAL_ARRAY(VALUE, F_ARR, HOOKS) - - IF ( ASSOCIATED(PAR_DICTIONARY%WAVE%FREQ_) ) THEN - DEALLOCATE(PAR_DICTIONARY%WAVE%FREQ_, STAT=ALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - ENDIF - - ALLOCATE( PAR_DICTIONARY%WAVE%FREQ_(SIZE(F_ARR) ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_ALLOC_FAILURE ) - DO ITEMP = 1, SIZE(F_ARR) - PAR_DICTIONARY%WAVE%FREQ_(ITEMP) = F_ARR(ITEMP) - END DO - PAR_DICTIONARY%LEVELS%TO_BE_DEALLOCATED=.TRUE. - - DEALLOCATE( F_ARR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - - CASE (PAR_ITERATOR_SATELLITE_SERIES) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%SATELLITE%SATELLITE_SERIES = ITEMP - - CASE (PAR_ITERATOR_SCALED_FACTOR_OF_CENTRAL_WAVE_NUMBER) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%SATELLITE%SCALED_FACTOR_OF_CENTRAL_VAWENUMBER = ITEMP - - CASE (PAR_ITERATOR_SCALED_VALUE_OF_CENTRAL_WAVE_NUMBER) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%SATELLITE%SCALED_VALUE_OF_CENTRAL_VAWENUMBER = ITEMP - - CASE (PAR_ITERATOR_DESTINE_LOCAL_VERSION) - PP_TRYCALL(ERRFLAG_CONVERT_PAR_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - PAR_DICTIONARY%DESTINE_LOCAL_VERSION = ITEMP - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_PAR_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_PAR_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_PAR_TO_ENUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert parameter to enumerator' ) - CASE(ERRFLAG_UNABLE_TO_SET_PAR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set parameter' ) - CASE(ERRFLAG_ALLOC_FAILURE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Allocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE( ERRMSG, STAT=DEALLOC_STATUS ) - ENDIF - CASE(ERRFLAG_DEALLOC_FAILURE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Deallocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE( ERRMSG, STAT=DEALLOC_STATUS ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_SET_VALUE_FROM_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_SET_VALUE_FROM_INT64' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_SET_VALUE_FROM_INT64( PAR_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(INOUT) :: PAR_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_PAR_KEY=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_PAR=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE (PAR_ITERATOR_TABLES_VERSION) - PAR_DICTIONARY%TABLES_VERSION=VALUE - - CASE (PAR_ITERATOR_GENERATING_PROCESS_IDENTIFIER) - PAR_DICTIONARY%GENERATING_PROCESS_IDENTIFIER=VALUE - - CASE (PAR_ITERATOR_TYPE_OF_PROCESSED_DATA) - PAR_DICTIONARY%TYPE_OF_PROCESSED_DATA=VALUE - - CASE (PAR_ITERATOR_ENCODE_STEP_ZERO) - PAR_DICTIONARY%ENCODE_STEP_ZERO=VALUE - - CASE (PAR_ITERATOR_INITIAL_STEP) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%TIME%SET_INITIAL_STEP(VALUE, HOOKS) - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_STEP) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%TIME%SET_LENGTH_OF_TIME_STEP_IN_SECONDS(VALUE, HOOKS) - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_RANGE) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%TIME%SET_LENGTH_OF_TIME_RANGE_IN_SECONDS(VALUE, HOOKS) - - CASE (PAR_ITERATOR_NUMBER_OF_MISSING_VALUES) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%BITMAP%SET_NUMBER_OF_MISSING_VALUES(VALUE, HOOKS) - - CASE (PAR_ITERATOR_TYPE_OF_ENSEMBLE_FORECAST) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%ENSEMBLE%SET_TYPE_OF_ENSEMBLE_FORECAST(VALUE, HOOKS) - - CASE (PAR_ITERATOR_NUMBER_OF_FORECASTS_IN_ENSEMBLE) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%ENSEMBLE%SET_NUMBER_OF_FORECASTS_IN_ENSEMBLE(VALUE, HOOKS) - - CASE (PAR_ITERATOR_LENGTH_OF_TIME_WINDOW) - PAR_DICTIONARY%ANALYSIS%LENGTH_OF_TIME_WINDOW_ = VALUE - - CASE (PAR_ITERATOR_BITS_PER_VALUE) - PAR_DICTIONARY%DATA_REPRESENTATION%BITS_PER_VALUE_ = VALUE - - CASE (PAR_ITERATOR_LAPLACIAN_SCALING_FACTOR) - PAR_DICTIONARY%DATA_REPRESENTATION%LAPLACIAN_SCALE_FACTOR_ = VALUE - - CASE (PAR_ITERATOR_PERIOD_MIN) - PAR_DICTIONARY%WAVE%ITMIN = VALUE - - CASE (PAR_ITERATOR_PERIOD_MAX) - PAR_DICTIONARY%WAVE%ITMAX = VALUE - - CASE (PAR_ITERATOR_PERIOD_SCALE_FACTOR_DIR) - PAR_DICTIONARY%WAVE%SCALE_FACTOR_OF_WAVE_DIRECTIONS = VALUE - - CASE (PAR_ITERATOR_PERIOD_SCALE_FACTOR_FREQ) - PAR_DICTIONARY%WAVE%SCALE_FACTOR_OF_WAVE_FREQUENCIES = VALUE - - CASE (PAR_ITERATOR_SATELLITE_SERIES) - PAR_DICTIONARY%SATELLITE%SATELLITE_SERIES = VALUE - - CASE (PAR_ITERATOR_SCALED_FACTOR_OF_CENTRAL_WAVE_NUMBER) - PAR_DICTIONARY%SATELLITE%SCALED_FACTOR_OF_CENTRAL_VAWENUMBER = VALUE - - CASE (PAR_ITERATOR_SCALED_VALUE_OF_CENTRAL_WAVE_NUMBER) - PAR_DICTIONARY%SATELLITE%SCALED_VALUE_OF_CENTRAL_VAWENUMBER = VALUE - - CASE (PAR_ITERATOR_DESTINE_LOCAL_VERSION) - PAR_DICTIONARY%DESTINE_LOCAL_VERSION = VALUE - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_PAR_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_PAR_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE( ERRFLAG_UNABLE_TO_SET_PAR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set parameter' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_SET_VALUE_FROM_INT64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_SET_VALUE_FROM_REAL64' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_SET_VALUE_FROM_REAL64( PAR_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: CINT2IINT - USE :: ENUMERATORS_MOD, ONLY: CFLOAT2IFLOAT - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_REAL_ARRAY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(INOUT) :: PAR_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_PAR_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_PAR=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE (PAR_ITERATOR_VALUES_SCALE_FACTOR) - PAR_DICTIONARY%VALUES_SCALE_FACTOR=VALUE - - CASE (PAR_ITERATOR_VALUE_OF_MISSING_VALUES) - PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PAR) PAR_DICTIONARY%BITMAP%SET_VALUE_OF_MISSING_VALUES(VALUE, HOOKS) - - CASE (PAR_ITERATOR_LAPLACIAN_SCALING_FACTOR) - PAR_DICTIONARY%DATA_REPRESENTATION%LAPLACIAN_SCALE_FACTOR_ = VALUE - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_PAR_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_PAR_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_UNABLE_TO_SET_PAR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set parameter' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_SET_VALUE_FROM_REAL64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( PAR_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(INOUT) :: PAR_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_PAR_KEY=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_PAR=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_PAR_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_PAR_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE( ERRFLAG_UNABLE_TO_SET_PAR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set parameter' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PAR_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY' -PP_THREAD_SAFE FUNCTION PAR_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( PAR_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: CINT2IINT - USE :: ENUMERATORS_MOD, ONLY: CFLOAT2IFLOAT - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_REAL_ARRAY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(PARAMETRIZATION_T), INTENT(INOUT) :: PAR_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ITEMP - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_PAR_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_PAR=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOC_FAILURE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOC_FAILURE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE (PAR_ITERATOR_PV) - - IF ( ASSOCIATED(PAR_DICTIONARY%LEVELS%PV) ) THEN - DEALLOCATE(PAR_DICTIONARY%LEVELS%PV, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - NULLIFY(PAR_DICTIONARY%LEVELS%PV) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - ENDIF - - ALLOCATE( PAR_DICTIONARY%LEVELS%PV(SIZE(VALUE) ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_ALLOC_FAILURE ) - DO ITEMP = 1, SIZE(VALUE) - PAR_DICTIONARY%LEVELS%PV(ITEMP) = VALUE(ITEMP) - END DO - PAR_DICTIONARY%LEVELS%TO_BE_DEALLOCATED=.TRUE. - - CASE (PAR_ITERATOR_DIR) - - IF ( ASSOCIATED(PAR_DICTIONARY%WAVE%DIRS_) ) THEN - DEALLOCATE(PAR_DICTIONARY%WAVE%DIRS_, STAT=ALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - ENDIF - - ALLOCATE( PAR_DICTIONARY%WAVE%DIRS_(SIZE(VALUE) ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_ALLOC_FAILURE ) - DO ITEMP = 1, SIZE(VALUE) - PAR_DICTIONARY%WAVE%DIRS_(ITEMP) = VALUE(ITEMP) - END DO - PAR_DICTIONARY%LEVELS%TO_BE_DEALLOCATED=.TRUE. - - CASE (PAR_ITERATOR_FREQ) - - IF ( ASSOCIATED(PAR_DICTIONARY%WAVE%FREQ_) ) THEN - DEALLOCATE(PAR_DICTIONARY%WAVE%FREQ_, STAT=ALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - ENDIF - - ALLOCATE( PAR_DICTIONARY%WAVE%FREQ_(SIZE(VALUE) ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_ALLOC_FAILURE ) - DO ITEMP = 1, SIZE(VALUE) - PAR_DICTIONARY%WAVE%FREQ_(ITEMP) = VALUE(ITEMP) - END DO - PAR_DICTIONARY%LEVELS%TO_BE_DEALLOCATED=.TRUE. - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_PAR_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_PAR_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_UNABLE_TO_SET_PAR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set parameter' ) - CASE(ERRFLAG_ALLOC_FAILURE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Allocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE( ERRMSG, STAT=DEALLOC_STATUS ) - ENDIF - CASE(ERRFLAG_DEALLOC_FAILURE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Deallocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE( ERRMSG, STAT=DEALLOC_STATUS ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PAR_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE PAR_DICTIONARY_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/par_dictionary_wrapper_mod.F90 b/src/multiom/encoders/api/dictionaries/par_dictionary_wrapper_mod.F90 deleted file mode 100644 index 64f6189e6..000000000 --- a/src/multiom/encoders/api/dictionaries/par_dictionary_wrapper_mod.F90 +++ /dev/null @@ -1,801 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'par_dictionary_wrapper_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'PAR_DICTIONARY_WRAPPER_MOD' -MODULE PAR_DICTIONARY_WRAPPER_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - - ! Symbols imported from other modules within the project. - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - -IMPLICIT NONE - - !> Default module visibnility - PRIVATE - - !> PAR_DICTIONARY index used used to identify the par_dictionary wrapper - INTEGER(KIND=JPIB_K), PARAMETER :: PAR_DICTIONARY_IDX_E = 2_JPIB_K - - !> Class used as a wrapper for the par_dictionary - TYPE :: PAR_DICTIONARY_CONTAINER_T - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICTIONARY => NULL() - END TYPE - - !> Whitelist of public symbols - PUBLIC :: PAR_DICTIONARY_IDX_E - - PUBLIC :: MAKE_PAR_DICTIONARY - PUBLIC :: FREE_PAR_DICTIONARY - PUBLIC :: EXTRACT_PAR_DICTIONARY - -CONTAINS - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_PAR_DICTIONARY' -PP_THREAD_SAFE FUNCTION MAKE_PAR_DICTIONARY( WRAPPED_PAR_DICTIONARY, & -& HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_PAR_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICTIONARY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PAR_DICTIONARY_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CREATE_PAR_DICTIONARY=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZE_PAR_DICTIONARY=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INJECT_CHECKSUM=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_PAR_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED ) - - !> Initialize the par_dictionary - PAR_DICTIONARY => NULL() - - !> Create the par_dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_CREATE_PAR_DICTIONARY) CREATE_PAR_DICTIONARY( & -& WRAPPED_PAR_DICTIONARY, PAR_DICTIONARY, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(PAR_DICTIONARY), ERRFLAG_PAR_DICTIONARY_NOT_ASSOCIATED ) - - ! Initialize the par_dictionary - PP_TRYCALL(ERRFLAG_INITIALIZE_PAR_DICTIONARY) PAR_DICTIONARY%INIT( HOOKS ) - - ! Inject checksum - PP_TRYCALL(ERRFLAG_INJECT_CHECKSUM) INJECT_CHECKSUM_PAR_DICTIONARY( WRAPPED_PAR_DICTIONARY, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'PAR_DICTIONARY already associated at function entry' ) - CASE (ERRFLAG_PAR_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'PAR_DICTIONARY not associated after allocation' ) - CASE (ERRFLAG_UNABLE_TO_CREATE_PAR_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract par_dictionary' ) - CASE (ERRFLAG_INITIALIZE_PAR_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to initialize par_dictionary' ) - CASE (ERRFLAG_INJECT_CHECKSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_PAR_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'FREE_PAR_DICTIONARY' -PP_THREAD_SAFE FUNCTION FREE_PAR_DICTIONARY( WRAPPED_PAR_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_FREE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_PAR_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(PARAMETRIZATION_T), POINTER :: PAR_DICTIONARY - TYPE(PAR_DICTIONARY_CONTAINER_T) :: PAR_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: PAR_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(PAR_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_PAR_DICTIONARY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PAR_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_PAR_DICTIONARY=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE_PAR_DICTIONARY=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_WRAPPER=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_PAR_DICTIONARY=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_PAR_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_PAR_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. PAR_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - PAR_DICTIONARY_CONTAINER = TRANSFER( BUFFER, PAR_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(PAR_DICTIONARY_CONTAINER%PAR_DICTIONARY), ERRFLAG_PAR_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the par_dictionary pointer - PAR_DICTIONARY => PAR_DICTIONARY_CONTAINER%PAR_DICTIONARY - - ! Print the par_dictionary to be freed - !! MIVAL: This is a debug print statement that should be enable to debug the c/fortran interoperability - !! PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_PAR_DICTIONARY) PAR_DICTIONARY%PRINT( 6_JPIB_K, 0_JPIB_K, HOOKS ) - ! Free the par_dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_PAR_DICTIONARY) PAR_DICTIONARY%FREE( HOOKS ) - - ! Deallocate the par_dictionary - DEALLOCATE( PAR_DICTIONARY_CONTAINER%PAR_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_DEALLOCATE_PAR_DICTIONARY ) - PAR_DICTIONARY_CONTAINER%PAR_DICTIONARY => NULL() - PAR_DICTIONARY => NULL() - - ! Error handling - BUFFER = 0_C_INT8_T - - ! Free the wrapper - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_WRAPPER) F_C_FREE_WRAPPER( & -& WRAPPER, HOOKS ) - WRAPPER => NULL() - BUFFER => NULL() - - ! Reset the c pointer - WRAPPED_PAR_DICTIONARY = C_NULL_PTR - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_PAR_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract par_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_PAR_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'PAR_DICTIONARY not associated' ) - CASE (ERRFLAG_UNABLE_TO_FREE_PAR_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free par_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE_PAR_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to deallocate par_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_FREE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free wrapper' ) - CASE (ERRFLAG_UNABLE_TO_PRINT_PAR_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to print par_dictionary' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION FREE_PAR_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CREATE_PAR_DICTIONARY' -PP_THREAD_SAFE FUNCTION CREATE_PAR_DICTIONARY( WRAPPED_PAR_DICTIONARY, PAR_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_PAR_DICTIONARY - TYPE(PARAMETRIZATION_T), POINTER, INTENT(INOUT) :: PAR_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(PAR_DICTIONARY_CONTAINER_T) :: PAR_DICTIONARY_CONTAINER - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: PAR_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(PAR_DICTIONARY_CONTAINER) / 8_JPIB_K - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PAR_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_PAR_DICTIONARY=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_PAR_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(PAR_DICTIONARY), ERRFLAG_PAR_DICTIONARY_ALREADY_ASSOCIATED) - - ! Allocate the par_dictionary - ALLOCATE( PAR_DICTIONARY_CONTAINER%PAR_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_ALLOCATE_PAR_DICTIONARY ) - - ! Allocate the wrapper - WRAPPER => NULL() - BUFFER => NULL() - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) F_C_ALLOCATE_WRAPPER( & -& WRAPPER, BUFFER, PAR_DICTIONARY_IDX_E, PAR_DICTIONARY_CONTAINER_BYTE_SIZE, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - - ! Wrap the par_dictionary in order to be able to expose it to c - BUFFER = TRANSFER(PAR_DICTIONARY_CONTAINER, BUFFER, PAR_DICTIONARY_CONTAINER_BYTE_SIZE ) - - ! Set the return arguments - PAR_DICTIONARY => PAR_DICTIONARY_CONTAINER%PAR_DICTIONARY - WRAPPED_PAR_DICTIONARY = C_LOC(WRAPPER) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper already associated' ) - CASE (ERRFLAG_PAR_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'PAR_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_PAR_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate par_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate wrapper' ) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated after allocation' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated after allocation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CREATE_PAR_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'INJECT_CHECKSUM_PAR_DICTIONARY' -PP_THREAD_SAFE FUNCTION INJECT_CHECKSUM_PAR_DICTIONARY( WRAPPED_PAR_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_INJECT_CHECKSUM_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_PAR_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_PAR_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_PAR_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - PP_TRYCALL(ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) F_C_INJECT_CHECKSUM_WRAPPER( WRAPPER, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION INJECT_CHECKSUM_PAR_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'EXTRACT_PAR_DICTIONARY' -PP_THREAD_SAFE FUNCTION EXTRACT_PAR_DICTIONARY( WRAPPED_PAR_DICTIONARY, PAR_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_PAR_DICTIONARY - TYPE(PARAMETRIZATION_T), POINTER, INTENT(INOUT) :: PAR_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(PAR_DICTIONARY_CONTAINER_T) :: PAR_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: PAR_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(PAR_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PAR_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PAR_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_PAR_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(PAR_DICTIONARY), ERRFLAG_PAR_DICTIONARY_ALREADY_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_PAR_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. PAR_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - PAR_DICTIONARY_CONTAINER = TRANSFER( BUFFER, PAR_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(PAR_DICTIONARY_CONTAINER%PAR_DICTIONARY), ERRFLAG_PAR_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the par_dictionary pointer - PAR_DICTIONARY => PAR_DICTIONARY_CONTAINER%PAR_DICTIONARY - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_PAR_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'PAR_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_PAR_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'PAR_DICTIONARY not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION EXTRACT_PAR_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE PAR_DICTIONARY_WRAPPER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/reduced_gg_dictionary_utils_mod.F90 b/src/multiom/encoders/api/dictionaries/reduced_gg_dictionary_utils_mod.F90 deleted file mode 100644 index 89216c412..000000000 --- a/src/multiom/encoders/api/dictionaries/reduced_gg_dictionary_utils_mod.F90 +++ /dev/null @@ -1,1569 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'reduced_gg_dictionary_utils_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'REDUCED_GG_DICTIONARY_UTILS_MOD' -MODULE REDUCED_GG_DICTIONARY_UTILS_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -!> Enumerators for the iterator -INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_ITERATOR_TRUNCATE_DEGREES = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_ITERATOR_NPTS_ALONG_MERIDIAN = 2_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_ITERATOR_NPARALLELS = 3_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_ITERATOR_LAT_FIRST_GP_DEG = 4_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_ITERATOR_LON_FIRST_GP_DEG = 5_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_ITERATOR_LAT_LAST_GP_DEG = 6_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_ITERATOR_LON_LAST_GP_DEG = 7_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_ITERATOR_PL = 8_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_ITERATOR_UNDEF = 9_JPIB_K - - -! Whitelist of public symbols -PUBLIC :: REDUCED_GG_DICTIONARY_MAX_ITERATOR -PUBLIC :: REDUCED_GG_DICTIONARY_INIT_ITERATOR -PUBLIC :: REDUCED_GG_DICTIONARY_NAME2ITERATOR -PUBLIC :: REDUCED_GG_DICTIONARY_GET_NEXT_ITERATOR -PUBLIC :: REDUCED_GG_DICTIONARY_HAS -PUBLIC :: REDUCED_GG_DICTIONARY_GET_KEY_AS_STRING -PUBLIC :: REDUCED_GG_DICTIONARY_GET_VALUE_AS_STRING -PUBLIC :: REDUCED_GG_DICTIONARY_SET_VALUE_FROM_STRING -PUBLIC :: REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64 -PUBLIC :: REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64 -PUBLIC :: REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -PUBLIC :: REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_MAX_ITERATOR' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_MAX_ITERATOR( REDUCED_GG_DICTIONARY, MAX_ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(IN) :: REDUCED_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: MAX_ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - MAX_ITERATOR = REDUCED_GG_ITERATOR_UNDEF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_MAX_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_INIT_ITERATOR' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_INIT_ITERATOR( REDUCED_GG_DICTIONARY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(IN) :: REDUCED_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - ITERATOR = 1_JPIB_K - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_INIT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_GET_NEXT_ITERATOR' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_GET_NEXT_ITERATOR( REDUCED_GG_DICTIONARY, ITERATOR, END_OF_ITERATORS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(IN) :: REDUCED_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: END_OF_ITERATORS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - LOGICAL :: HAS_KEY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HAS_ITERATOR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - HAS_KEY = .FALSE. - END_OF_ITERATORS = .FALSE. - DO WHILE(.NOT.HAS_KEY) - - ! Get the next iterator - ITERATOR = ITERATOR + 1 - - ! Check if the iterator is the last one - IF ( ITERATOR .EQ. REDUCED_GG_ITERATOR_UNDEF ) THEN - END_OF_ITERATORS = .TRUE. - HAS_KEY = .TRUE. - ELSE - PP_TRYCALL(ERRFLAG_HAS_ITERATOR) REDUCED_GG_DICTIONARY_HAS( REDUCED_GG_DICTIONARY, ITERATOR, HAS_KEY, HOOKS ) - ENDIF - - ENDDO - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_HAS_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to check if the iterator exists' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_GET_NEXT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_NAME2ITERATOR' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_NAME2ITERATOR( REDUCED_GG_DICTIONARY, KEY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(IN) :: REDUCED_GG_DICTIONARY - CHARACTER(LEN=*), INTENT(IN) :: KEY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=LEN(KEY)) :: KEY_LOW - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REDUCED_GG_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Convert to string to lowercase - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( KEY, KEY_LOW, HOOKS ) - - ! Get the iterator from the key name - SELECT CASE ( KEY_LOW ) - - CASE ( 'truncatedegrees', 'truncate-degrees' ) - ITERATOR = REDUCED_GG_ITERATOR_TRUNCATE_DEGREES - - CASE ( 'numberofpointsalongameridian', 'number-of-points-along-a-meridian' ) - ITERATOR = REDUCED_GG_ITERATOR_NPTS_ALONG_MERIDIAN - - CASE ( 'numberofparallelsbetweenapoleandtheequator', 'number-of-parallels-between-a-pole-and-the-equator', 'number-of-parallels-between-pole-and-equator' ) - ITERATOR = REDUCED_GG_ITERATOR_NPARALLELS - - CASE ( 'latitudeoffirstgridpointindegrees', 'latitude-of-first-grid-point-in-degrees' ) - ITERATOR = REDUCED_GG_ITERATOR_LAT_FIRST_GP_DEG - - CASE ( 'longitudeoffirstgridpointindegrees', 'longitude-of-first-grid-point-in-degrees' ) - ITERATOR = REDUCED_GG_ITERATOR_LON_FIRST_GP_DEG - - CASE ( 'latitudeoflastgridpointindegrees', 'latitude-of-last-grid-point-in-degrees' ) - ITERATOR = REDUCED_GG_ITERATOR_LAT_LAST_GP_DEG - - CASE ( 'longitudeoflastgridpointindegrees', 'longitude-of-last-grid-point-in-degrees' ) - ITERATOR = REDUCED_GG_ITERATOR_LON_LAST_GP_DEG - - CASE ( 'pl' ) - ITERATOR = REDUCED_GG_ITERATOR_PL - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REDUCED_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_CONVERT_LC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert to lowercase' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'key: '//TRIM(ADJUSTL(KEY)) ) - CASE(ERRFLAG_NO_REDUCED_GG_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'No REDUCED_GG key found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_NAME2ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_HAS' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_HAS( REDUCED_GG_DICTIONARY, ITERATOR, HAS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(IN) :: REDUCED_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REDUCED_GG_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REDUCED_GG_ITERATOR_TRUNCATE_DEGREES ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_NPTS_ALONG_MERIDIAN ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_NPARALLELS ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_LAT_FIRST_GP_DEG ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_LON_FIRST_GP_DEG ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_LAT_LAST_GP_DEG ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_LON_LAST_GP_DEG ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_PL ) - IF ( ASSOCIATED(REDUCED_GG_DICTIONARY%PL) ) THEN - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REDUCED_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_REDUCED_GG_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_HAS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_GET_KEY_AS_STRING' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_GET_KEY_AS_STRING( REDUCED_GG_DICTIONARY, ITERATOR, KEY, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(IN) :: REDUCED_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=64), INTENT(OUT) :: KEY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REDUCED_GG_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_ENUM_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize the value - KEY = REPEAT( ' ', LEN(KEY) ) - - SELECT CASE ( ITERATOR ) - - CASE ( REDUCED_GG_ITERATOR_TRUNCATE_DEGREES ) - KEY = 'truncate-degrees' - - CASE ( REDUCED_GG_ITERATOR_NPTS_ALONG_MERIDIAN ) - KEY = 'number-of-points-along-a-meridian' - - CASE ( REDUCED_GG_ITERATOR_NPARALLELS ) - KEY = 'number-of-parallels-between-pole-and-equator' - - CASE ( REDUCED_GG_ITERATOR_LAT_FIRST_GP_DEG ) - KEY = 'latitude-of-first-grid-point-in-degrees' - - CASE ( REDUCED_GG_ITERATOR_LON_FIRST_GP_DEG ) - KEY = 'longitude-of-first-grid-point-in-degrees' - - CASE ( REDUCED_GG_ITERATOR_LAT_LAST_GP_DEG ) - KEY = 'latitude-of-last-grid-point-in-degrees' - - CASE ( REDUCED_GG_ITERATOR_LON_LAST_GP_DEG ) - KEY = 'longitude-of-last-grid-point-in-degrees' - - CASE ( REDUCED_GG_ITERATOR_PL ) - KEY = 'pl' - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REDUCED_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_REDUCED_GG_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_ENUM_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_GET_KEY_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_GET_VALUE_AS_STRING' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_GET_VALUE_AS_STRING( REDUCED_GG_DICTIONARY, ITERATOR, VALUE, HAS, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_GENERAL_UTILS_MOD, ONLY: CONVERT_TO_C_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(IN) :: REDUCED_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - TYPE(C_PTR), INTENT(OUT) :: VALUE - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REDUCED_GG_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_TO_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REDUCED_GG_ITERATOR_TRUNCATE_DEGREES ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REDUCED_GG_DICTIONARY%TRUNCATE_DEGREES, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_NPTS_ALONG_MERIDIAN ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REDUCED_GG_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_MERIDIAN, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_NPARALLELS ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REDUCED_GG_DICTIONARY%NUMBER_OF_PARALLELS_BETWEEN_POLE_AND_EQUATOR, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_LAT_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REDUCED_GG_DICTIONARY%LAT_FIRST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_LON_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REDUCED_GG_DICTIONARY%LON_FIRST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_LAT_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REDUCED_GG_DICTIONARY%LAT_LAST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_LON_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REDUCED_GG_DICTIONARY%LON_LAST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REDUCED_GG_ITERATOR_PL ) - IF ( ASSOCIATED(REDUCED_GG_DICTIONARY%PL) ) THEN - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REDUCED_GG_DICTIONARY%PL, VALUE, HOOKS ) - HAS = .TRUE. - ELSE - HAS = .FALSE. - ENDIF - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REDUCED_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_REDUCED_GG_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_TO_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_GET_VALUE_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_SET_VALUE_FROM_STRING' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_SET_VALUE_FROM_STRING( REDUCED_GG_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: CINT2IINT - USE :: ENUMERATORS_MOD, ONLY: CFLOAT2IFLOAT - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_REAL_ARRAY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(INOUT) :: REDUCED_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=*), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ITEMP - REAL(KIND=JPRD_K) :: FTEMP - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - REAL(KIND=JPRD_K), DIMENSION(:), ALLOCATABLE :: F_ARR - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REDUCED_GG_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_REDUCED_GG_TO_ENUM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOC_FAILURE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOC_FAILURE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REDUCED_GG_ITERATOR_TRUNCATE_DEGREES ) - PP_TRYCALL(ERRFLAG_CONVERT_REDUCED_GG_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - REDUCED_GG_DICTIONARY%TRUNCATE_DEGREES=ITEMP - - CASE ( REDUCED_GG_ITERATOR_NPTS_ALONG_MERIDIAN ) - PP_TRYCALL(ERRFLAG_CONVERT_REDUCED_GG_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - REDUCED_GG_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_MERIDIAN=ITEMP - - CASE ( REDUCED_GG_ITERATOR_NPARALLELS ) - PP_TRYCALL(ERRFLAG_CONVERT_REDUCED_GG_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - REDUCED_GG_DICTIONARY%NUMBER_OF_PARALLELS_BETWEEN_POLE_AND_EQUATOR=ITEMP - - CASE ( REDUCED_GG_ITERATOR_LAT_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REDUCED_GG_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REDUCED_GG_DICTIONARY%LAT_FIRST_GP_DEG=FTEMP - - CASE ( REDUCED_GG_ITERATOR_LON_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REDUCED_GG_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REDUCED_GG_DICTIONARY%LON_FIRST_GP_DEG=FTEMP - - CASE ( REDUCED_GG_ITERATOR_LAT_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REDUCED_GG_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REDUCED_GG_DICTIONARY%LAT_LAST_GP_DEG=FTEMP - - CASE ( REDUCED_GG_ITERATOR_LON_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REDUCED_GG_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REDUCED_GG_DICTIONARY%LON_LAST_GP_DEG=FTEMP - - CASE ( REDUCED_GG_ITERATOR_PL ) - - PP_TRYCALL(ERRFLAG_CONVERT_REDUCED_GG_TO_ENUM) STRING_TO_REAL_ARRAY(VALUE, F_ARR, HOOKS) - - IF ( ASSOCIATED(REDUCED_GG_DICTIONARY%PL) ) THEN - DEALLOCATE(REDUCED_GG_DICTIONARY%PL, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - ENDIF - - ALLOCATE( REDUCED_GG_DICTIONARY%PL(SIZE(F_ARR) ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_ALLOC_FAILURE ) - DO ITEMP = 1, SIZE(F_ARR) - REDUCED_GG_DICTIONARY%PL(ITEMP) = F_ARR(ITEMP) - END DO - REDUCED_GG_DICTIONARY%TO_BE_DEALLOCATED=.TRUE. - - DEALLOCATE( F_ARR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REDUCED_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REDUCED_GG_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE( ERRFLAG_CONVERT_REDUCED_GG_TO_ENUM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert REDUCED_GG to enumerator' ) - CASE( ERRFLAG_ALLOC_FAILURE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Allocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE( ERRFLAG_DEALLOC_FAILURE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Deallocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_SET_VALUE_FROM_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64( REDUCED_GG_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(INOUT) :: REDUCED_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REDUCED_GG_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REDUCED_GG_ITERATOR_TRUNCATE_DEGREES ) - REDUCED_GG_DICTIONARY%TRUNCATE_DEGREES = VALUE - - CASE ( REDUCED_GG_ITERATOR_NPTS_ALONG_MERIDIAN ) - REDUCED_GG_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_MERIDIAN = VALUE - - CASE ( REDUCED_GG_ITERATOR_NPARALLELS ) - REDUCED_GG_DICTIONARY%NUMBER_OF_PARALLELS_BETWEEN_POLE_AND_EQUATOR = VALUE - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REDUCED_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REDUCED_GG_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64( REDUCED_GG_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(INOUT) :: REDUCED_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REDUCED_GG_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REDUCED_GG_ITERATOR_LAT_FIRST_GP_DEG ) - REDUCED_GG_DICTIONARY%LAT_FIRST_GP_DEG = VALUE - - CASE ( REDUCED_GG_ITERATOR_LON_FIRST_GP_DEG ) - REDUCED_GG_DICTIONARY%LON_FIRST_GP_DEG = VALUE - - CASE ( REDUCED_GG_ITERATOR_LAT_LAST_GP_DEG ) - REDUCED_GG_DICTIONARY%LAT_LAST_GP_DEG = VALUE - - CASE ( REDUCED_GG_ITERATOR_LON_LAST_GP_DEG ) - REDUCED_GG_DICTIONARY%LON_LAST_GP_DEG = VALUE - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REDUCED_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REDUCED_GG_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( REDUCED_GG_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(INOUT) :: REDUCED_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ITEMP - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REDUCED_GG_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOC_FAILURE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOC_FAILURE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REDUCED_GG_ITERATOR_PL ) - - IF ( ASSOCIATED(REDUCED_GG_DICTIONARY%PL) ) THEN - DEALLOCATE(REDUCED_GG_DICTIONARY%PL, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOC_FAILURE ) - ENDIF - - ALLOCATE( REDUCED_GG_DICTIONARY%PL(SIZE(VALUE) ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_ALLOC_FAILURE ) - DO ITEMP = 1, SIZE(VALUE) - REDUCED_GG_DICTIONARY%PL(ITEMP) = VALUE(ITEMP) - END DO - REDUCED_GG_DICTIONARY%TO_BE_DEALLOCATED=.TRUE. - - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REDUCED_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REDUCED_GG_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE( ERRFLAG_ALLOC_FAILURE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Allocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE( ERRFLAG_DEALLOC_FAILURE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Deallocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY' -PP_THREAD_SAFE FUNCTION REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( REDUCED_GG_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REDUCED_GG_T), INTENT(INOUT) :: REDUCED_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REDUCED_GG_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REDUCED_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REDUCED_GG_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REDUCED_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE REDUCED_GG_DICTIONARY_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/reduced_gg_dictionary_wrapper_mod.F90 b/src/multiom/encoders/api/dictionaries/reduced_gg_dictionary_wrapper_mod.F90 deleted file mode 100644 index 7d5952c3f..000000000 --- a/src/multiom/encoders/api/dictionaries/reduced_gg_dictionary_wrapper_mod.F90 +++ /dev/null @@ -1,801 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'reduced_gg_dictionary_wrapper_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'REDUCED_GG_DICTIONARY_WRAPPER_MOD' -MODULE REDUCED_GG_DICTIONARY_WRAPPER_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - -IMPLICIT NONE - - !> Default module visibnility - PRIVATE - - !> REDUCED_GG_DICTIONARY index used used to identify the reduced_gg_dictionary wrapper - INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_DICTIONARY_IDX_E = 3_JPIB_K - - !> Class used as a wrapper for the reduced_gg_dictionary - TYPE :: REDUCED_GG_DICTIONARY_CONTAINER_T - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICTIONARY => NULL() - END TYPE - - !> Whitelist of public symbols - PUBLIC :: REDUCED_GG_DICTIONARY_IDX_E - - PUBLIC :: MAKE_REDUCED_GG_DICTIONARY - PUBLIC :: FREE_REDUCED_GG_DICTIONARY - PUBLIC :: EXTRACT_REDUCED_GG_DICTIONARY - -CONTAINS - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_REDUCED_GG_DICTIONARY' -PP_THREAD_SAFE FUNCTION MAKE_REDUCED_GG_DICTIONARY( WRAPPED_REDUCED_GG_DICTIONARY, & -& HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REDUCED_GG_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICTIONARY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REDUCED_GG_DICTIONARY_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CREATE_REDUCED_GG_DICTIONARY=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZE_REDUCED_GG_DICTIONARY=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INJECT_CHECKSUM=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_REDUCED_GG_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED ) - - !> Initialize the reduced_gg_dictionary - REDUCED_GG_DICTIONARY => NULL() - - !> Create the reduced_gg_dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_CREATE_REDUCED_GG_DICTIONARY) CREATE_REDUCED_GG_DICTIONARY( & -& WRAPPED_REDUCED_GG_DICTIONARY, REDUCED_GG_DICTIONARY, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(REDUCED_GG_DICTIONARY), ERRFLAG_REDUCED_GG_DICTIONARY_NOT_ASSOCIATED ) - - ! Initialize the reduced_gg_dictionary - ! PP_TRYCALL(ERRFLAG_INITIALIZE_REDUCED_GG_DICTIONARY) REDUCED_GG_DICTIONARY%INIT( HOOKS ) - - ! Inject checksum - PP_TRYCALL(ERRFLAG_INJECT_CHECKSUM) INJECT_CHECKSUM_REDUCED_GG_DICTIONARY( WRAPPED_REDUCED_GG_DICTIONARY, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REDUCED_GG_DICTIONARY already associated at function entry' ) - CASE (ERRFLAG_REDUCED_GG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REDUCED_GG_DICTIONARY not associated after allocation' ) - CASE (ERRFLAG_UNABLE_TO_CREATE_REDUCED_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract reduced_gg_dictionary' ) - CASE (ERRFLAG_INITIALIZE_REDUCED_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to initialize reduced_gg_dictionary' ) - CASE (ERRFLAG_INJECT_CHECKSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_REDUCED_GG_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'FREE_REDUCED_GG_DICTIONARY' -PP_THREAD_SAFE FUNCTION FREE_REDUCED_GG_DICTIONARY( WRAPPED_REDUCED_GG_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_FREE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REDUCED_GG_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICTIONARY - TYPE(REDUCED_GG_DICTIONARY_CONTAINER_T) :: REDUCED_GG_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(REDUCED_GG_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_REDUCED_GG_DICTIONARY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REDUCED_GG_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_REDUCED_GG_DICTIONARY=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE_REDUCED_GG_DICTIONARY=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_WRAPPER=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_REDUCED_GG_DICTIONARY=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_REDUCED_GG_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_REDUCED_GG_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. REDUCED_GG_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - REDUCED_GG_DICTIONARY_CONTAINER = TRANSFER( BUFFER, REDUCED_GG_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(REDUCED_GG_DICTIONARY_CONTAINER%REDUCED_GG_DICTIONARY), ERRFLAG_REDUCED_GG_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the reduced_gg_dictionary pointer - REDUCED_GG_DICTIONARY => REDUCED_GG_DICTIONARY_CONTAINER%REDUCED_GG_DICTIONARY - - ! Print the reduced_gg_dictionary to be freed - !! MIVAL: This is a debug print statement that should be enable to debug the c/fortran interoperability - !! PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_REDUCED_GG_DICTIONARY) REDUCED_GG_DICTIONARY%PRINT( 6_JPIB_K, 0_JPIB_K, HOOKS ) - ! Free the reduced_gg_dictionary - ! PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_REDUCED_GG_DICTIONARY) REDUCED_GG_DICTIONARY%FREE( HOOKS ) - - ! Deallocate the reduced_gg_dictionary - DEALLOCATE( REDUCED_GG_DICTIONARY_CONTAINER%REDUCED_GG_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_DEALLOCATE_REDUCED_GG_DICTIONARY ) - REDUCED_GG_DICTIONARY_CONTAINER%REDUCED_GG_DICTIONARY => NULL() - REDUCED_GG_DICTIONARY => NULL() - - ! Error handling - BUFFER = 0_C_INT8_T - - ! Free the wrapper - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_WRAPPER) F_C_FREE_WRAPPER( & -& WRAPPER, HOOKS ) - WRAPPER => NULL() - BUFFER => NULL() - - ! Reset the c pointer - WRAPPED_REDUCED_GG_DICTIONARY = C_NULL_PTR - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_REDUCED_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract reduced_gg_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_REDUCED_GG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REDUCED_GG_DICTIONARY not associated' ) - CASE (ERRFLAG_UNABLE_TO_FREE_REDUCED_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free reduced_gg_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE_REDUCED_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to deallocate reduced_gg_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_FREE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free wrapper' ) - CASE (ERRFLAG_UNABLE_TO_PRINT_REDUCED_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to print reduced_gg_dictionary' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION FREE_REDUCED_GG_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CREATE_REDUCED_GG_DICTIONARY' -PP_THREAD_SAFE FUNCTION CREATE_REDUCED_GG_DICTIONARY( WRAPPED_REDUCED_GG_DICTIONARY, REDUCED_GG_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REDUCED_GG_DICTIONARY - TYPE(REDUCED_GG_T), POINTER, INTENT(INOUT) :: REDUCED_GG_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(REDUCED_GG_DICTIONARY_CONTAINER_T) :: REDUCED_GG_DICTIONARY_CONTAINER - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(REDUCED_GG_DICTIONARY_CONTAINER) / 8_JPIB_K - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REDUCED_GG_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_REDUCED_GG_DICTIONARY=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_REDUCED_GG_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(REDUCED_GG_DICTIONARY), ERRFLAG_REDUCED_GG_DICTIONARY_ALREADY_ASSOCIATED) - - ! Allocate the reduced_gg_dictionary - ALLOCATE( REDUCED_GG_DICTIONARY_CONTAINER%REDUCED_GG_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_ALLOCATE_REDUCED_GG_DICTIONARY ) - - ! Allocate the wrapper - WRAPPER => NULL() - BUFFER => NULL() - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) F_C_ALLOCATE_WRAPPER( & -& WRAPPER, BUFFER, REDUCED_GG_DICTIONARY_IDX_E, REDUCED_GG_DICTIONARY_CONTAINER_BYTE_SIZE, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - - ! Wrap the reduced_gg_dictionary in order to be able to expose it to c - BUFFER = TRANSFER(REDUCED_GG_DICTIONARY_CONTAINER, BUFFER, REDUCED_GG_DICTIONARY_CONTAINER_BYTE_SIZE ) - - ! Set the return arguments - REDUCED_GG_DICTIONARY => REDUCED_GG_DICTIONARY_CONTAINER%REDUCED_GG_DICTIONARY - WRAPPED_REDUCED_GG_DICTIONARY = C_LOC(WRAPPER) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper already associated' ) - CASE (ERRFLAG_REDUCED_GG_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REDUCED_GG_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_REDUCED_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate reduced_gg_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate wrapper' ) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated after allocation' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated after allocation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CREATE_REDUCED_GG_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'INJECT_CHECKSUM_REDUCED_GG_DICTIONARY' -PP_THREAD_SAFE FUNCTION INJECT_CHECKSUM_REDUCED_GG_DICTIONARY( WRAPPED_REDUCED_GG_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_INJECT_CHECKSUM_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REDUCED_GG_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_REDUCED_GG_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_REDUCED_GG_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - PP_TRYCALL(ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) F_C_INJECT_CHECKSUM_WRAPPER( WRAPPER, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION INJECT_CHECKSUM_REDUCED_GG_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'EXTRACT_REDUCED_GG_DICTIONARY' -PP_THREAD_SAFE FUNCTION EXTRACT_REDUCED_GG_DICTIONARY( WRAPPED_REDUCED_GG_DICTIONARY, REDUCED_GG_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_REDUCED_GG_DICTIONARY - TYPE(REDUCED_GG_T), POINTER, INTENT(INOUT) :: REDUCED_GG_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(REDUCED_GG_DICTIONARY_CONTAINER_T) :: REDUCED_GG_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: REDUCED_GG_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(REDUCED_GG_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REDUCED_GG_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REDUCED_GG_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_REDUCED_GG_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(REDUCED_GG_DICTIONARY), ERRFLAG_REDUCED_GG_DICTIONARY_ALREADY_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_REDUCED_GG_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. REDUCED_GG_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - REDUCED_GG_DICTIONARY_CONTAINER = TRANSFER( BUFFER, REDUCED_GG_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(REDUCED_GG_DICTIONARY_CONTAINER%REDUCED_GG_DICTIONARY), ERRFLAG_REDUCED_GG_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the reduced_gg_dictionary pointer - REDUCED_GG_DICTIONARY => REDUCED_GG_DICTIONARY_CONTAINER%REDUCED_GG_DICTIONARY - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_REDUCED_GG_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REDUCED_GG_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_REDUCED_GG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REDUCED_GG_DICTIONARY not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION EXTRACT_REDUCED_GG_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE REDUCED_GG_DICTIONARY_WRAPPER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/regular_gg_dictionary_utils_mod.F90 b/src/multiom/encoders/api/dictionaries/regular_gg_dictionary_utils_mod.F90 deleted file mode 100644 index 3ae7543ef..000000000 --- a/src/multiom/encoders/api/dictionaries/regular_gg_dictionary_utils_mod.F90 +++ /dev/null @@ -1,1536 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'regular_gg_dictionary_utils_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'REGULAR_GG_DICTIONARY_UTILS_MOD' -MODULE REGULAR_GG_DICTIONARY_UTILS_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -!> Enumerators for the iterator -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_ITERATOR_TRUNCATE_DEGREES = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_ITERATOR_NPTS_ALONG_MERIDIAN = 2_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_ITERATOR_NPTS_ALONG_PARALLEL = 3_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_ITERATOR_NPARALLELS = 4_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_ITERATOR_LAT_FIRST_GP_DEG = 5_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_ITERATOR_LON_FIRST_GP_DEG = 6_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_ITERATOR_LAT_LAST_GP_DEG = 7_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_ITERATOR_LON_LAST_GP_DEG = 8_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_ITERATOR_IDIR_INC = 9_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_ITERATOR_UNDEF = 10_JPIB_K - - -! Whitelist of public symbols -PUBLIC :: REGULAR_GG_DICTIONARY_MAX_ITERATOR -PUBLIC :: REGULAR_GG_DICTIONARY_INIT_ITERATOR -PUBLIC :: REGULAR_GG_DICTIONARY_NAME2ITERATOR -PUBLIC :: REGULAR_GG_DICTIONARY_GET_NEXT_ITERATOR -PUBLIC :: REGULAR_GG_DICTIONARY_HAS -PUBLIC :: REGULAR_GG_DICTIONARY_GET_KEY_AS_STRING -PUBLIC :: REGULAR_GG_DICTIONARY_GET_VALUE_AS_STRING - -PUBLIC :: REGULAR_GG_DICTIONARY_SET_VALUE_FROM_STRING -PUBLIC :: REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64 -PUBLIC :: REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64 -PUBLIC :: REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -PUBLIC :: REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_MAX_ITERATOR' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_MAX_ITERATOR( REGULAR_GG_DICTIONARY, MAX_ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(IN) :: REGULAR_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: MAX_ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - MAX_ITERATOR = REGULAR_GG_ITERATOR_UNDEF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_MAX_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_INIT_ITERATOR' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_INIT_ITERATOR( REGULAR_GG_DICTIONARY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(IN) :: REGULAR_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - ITERATOR = 1_JPIB_K - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_INIT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_GET_NEXT_ITERATOR' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_GET_NEXT_ITERATOR( REGULAR_GG_DICTIONARY, ITERATOR, END_OF_ITERATORS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(IN) :: REGULAR_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: END_OF_ITERATORS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - LOGICAL :: HAS_KEY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HAS_ITERATOR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - HAS_KEY = .FALSE. - END_OF_ITERATORS = .FALSE. - DO WHILE(.NOT.HAS_KEY) - - ! Get the next iterator - ITERATOR = ITERATOR + 1 - - ! Check if the iterator is the last one - IF ( ITERATOR .EQ. REGULAR_GG_ITERATOR_UNDEF ) THEN - END_OF_ITERATORS = .TRUE. - HAS_KEY = .TRUE. - ELSE - PP_TRYCALL(ERRFLAG_HAS_ITERATOR) REGULAR_GG_DICTIONARY_HAS( REGULAR_GG_DICTIONARY, ITERATOR, HAS_KEY, HOOKS ) - ENDIF - - ENDDO - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_HAS_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to check if the iterator exists' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_GET_NEXT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_NAME2ITERATOR' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_NAME2ITERATOR( REGULAR_GG_DICTIONARY, KEY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(IN) :: REGULAR_GG_DICTIONARY - CHARACTER(LEN=*), INTENT(IN) :: KEY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=LEN(KEY)) :: KEY_LOW - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_GG_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Convert to string to lowercase - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( KEY, KEY_LOW, HOOKS ) - - ! Get the iterator from the key name - SELECT CASE ( KEY_LOW ) - - CASE ( 'truncatedegrees', 'truncate-degrees' ) - ITERATOR = REGULAR_GG_ITERATOR_TRUNCATE_DEGREES - - CASE ( 'numberofpointsalongameridian', 'number-of-points-along-a-meridian' ) - ITERATOR = REGULAR_GG_ITERATOR_NPTS_ALONG_MERIDIAN - - CASE ( 'numberofpointsalongaparallel', 'number-of-points-along-a-parallel' ) - ITERATOR = REGULAR_GG_ITERATOR_NPTS_ALONG_PARALLEL - - CASE ( 'numberofparallelsbetweenapoleandtheequator', 'number-of-parallels-between-a-pole-and-the-equator', 'number-of-parallels-between-pole-and-equator' ) - ITERATOR = REGULAR_GG_ITERATOR_NPARALLELS - - CASE ( 'latitudeoffirstgridpointindegrees', 'latitude-of-first-grid-point-in-degrees' ) - ITERATOR = REGULAR_GG_ITERATOR_LAT_FIRST_GP_DEG - - CASE ( 'longitudeoffirstgridpointindegrees', 'longitude-of-first-grid-point-in-degrees' ) - ITERATOR = REGULAR_GG_ITERATOR_LON_FIRST_GP_DEG - - CASE ( 'latitudeoflastgridpointindegrees', 'latitude-of-last-grid-point-in-degrees' ) - ITERATOR = REGULAR_GG_ITERATOR_LAT_LAST_GP_DEG - - CASE ( 'longitudeoflastgridpointindegrees', 'longitude-of-last-grid-point-in-degrees' ) - ITERATOR = REGULAR_GG_ITERATOR_LON_LAST_GP_DEG - - CASE ( 'idirectionincrementindegrees', 'i-direction-increment-in-degrees' ) - ITERATOR = REGULAR_GG_ITERATOR_IDIR_INC - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_CONVERT_LC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert to lowercase' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'key: '//TRIM(ADJUSTL(KEY)) ) - CASE(ERRFLAG_NO_REGULAR_GG_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'No REGULAR_GG key found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_NAME2ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_HAS' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_HAS( REGULAR_GG_DICTIONARY, ITERATOR, HAS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(IN) :: REGULAR_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_GG_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_GG_ITERATOR_TRUNCATE_DEGREES ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_NPTS_ALONG_MERIDIAN ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_NPTS_ALONG_PARALLEL ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_NPARALLELS ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_LAT_FIRST_GP_DEG ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_LON_FIRST_GP_DEG ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_LAT_LAST_GP_DEG ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_LON_LAST_GP_DEG ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_IDIR_INC ) - HAS = .TRUE. - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_REGULAR_GG_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_HAS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_GET_KEY_AS_STRING' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_GET_KEY_AS_STRING( REGULAR_GG_DICTIONARY, ITERATOR, KEY, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(IN) :: REGULAR_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=64), INTENT(OUT) :: KEY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_GG_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_ENUM_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize the value - KEY = REPEAT( ' ', LEN(KEY) ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_GG_ITERATOR_TRUNCATE_DEGREES ) - KEY = 'truncate-degrees' - - CASE ( REGULAR_GG_ITERATOR_NPTS_ALONG_MERIDIAN ) - KEY = 'number-of-points-along-a-meridian' - - CASE ( REGULAR_GG_ITERATOR_NPTS_ALONG_PARALLEL ) - KEY = 'number-of-points-along-a-parallel' - - CASE ( REGULAR_GG_ITERATOR_NPARALLELS ) - KEY = 'number-of-parallels-between-pole-and-equator' - - CASE ( REGULAR_GG_ITERATOR_LAT_FIRST_GP_DEG ) - KEY = 'latitude-of-first-grid-point-in-degrees' - - CASE ( REGULAR_GG_ITERATOR_LON_FIRST_GP_DEG ) - KEY = 'longitude-of-first-grid-point-in-degrees' - - CASE ( REGULAR_GG_ITERATOR_LAT_LAST_GP_DEG ) - KEY = 'latitude-of-last-grid-point-in-degrees' - - CASE ( REGULAR_GG_ITERATOR_LON_LAST_GP_DEG ) - KEY = 'longitude-of-last-grid-point-in-degrees' - - CASE ( REGULAR_GG_ITERATOR_IDIR_INC ) - KEY = 'iDirectionIncrementInDegrees' - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_REGULAR_GG_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_ENUM_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_GET_KEY_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_GET_VALUE_AS_STRING' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_GET_VALUE_AS_STRING( REGULAR_GG_DICTIONARY, ITERATOR, VALUE, HAS, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_GENERAL_UTILS_MOD, ONLY: CONVERT_TO_C_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(IN) :: REGULAR_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - TYPE(C_PTR), INTENT(OUT) :: VALUE - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_GG_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_TO_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_GG_ITERATOR_TRUNCATE_DEGREES ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_GG_DICTIONARY%TRUNCATE_DEGREES, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_NPTS_ALONG_MERIDIAN ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_GG_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_MERIDIAN, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_NPTS_ALONG_PARALLEL ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_GG_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_PARALLEL, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_NPARALLELS ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_GG_DICTIONARY%NUMBER_OF_PARALLELS_BETWEEN_POLE_AND_EQUATOR, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_LAT_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_GG_DICTIONARY%LAT_FIRST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_LON_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_GG_DICTIONARY%LON_FIRST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_LAT_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_GG_DICTIONARY%LAT_LAST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_LON_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_GG_DICTIONARY%LON_LAST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_GG_ITERATOR_IDIR_INC ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_GG_DICTIONARY%IDIR_INC, VALUE, HOOKS ) - HAS = .TRUE. - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_REGULAR_GG_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_TO_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_GET_VALUE_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_SET_VALUE_FROM_STRING' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_SET_VALUE_FROM_STRING( REGULAR_GG_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: CINT2IINT - USE :: ENUMERATORS_MOD, ONLY: CFLOAT2IFLOAT - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_REAL_ARRAY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(INOUT) :: REGULAR_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=*), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ITEMP - REAL(KIND=JPRD_K) :: FTEMP - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - REAL(KIND=JPRD_K), DIMENSION(:), ALLOCATABLE :: F_ARR - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_GG_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_REGULAR_GG_TO_ENUM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOC_FAILURE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOC_FAILURE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_GG_ITERATOR_TRUNCATE_DEGREES ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_GG_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - REGULAR_GG_DICTIONARY%TRUNCATE_DEGREES=ITEMP - - CASE ( REGULAR_GG_ITERATOR_NPTS_ALONG_MERIDIAN ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_GG_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - REGULAR_GG_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_MERIDIAN=ITEMP - - CASE ( REGULAR_GG_ITERATOR_NPTS_ALONG_PARALLEL ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_GG_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - REGULAR_GG_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_PARALLEL=ITEMP - - CASE ( REGULAR_GG_ITERATOR_NPARALLELS ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_GG_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - REGULAR_GG_DICTIONARY%NUMBER_OF_PARALLELS_BETWEEN_POLE_AND_EQUATOR=ITEMP - - CASE ( REGULAR_GG_ITERATOR_LAT_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_GG_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REGULAR_GG_DICTIONARY%LAT_FIRST_GP_DEG=FTEMP - - CASE ( REGULAR_GG_ITERATOR_LON_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_GG_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REGULAR_GG_DICTIONARY%LON_FIRST_GP_DEG=FTEMP - - CASE ( REGULAR_GG_ITERATOR_LAT_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_GG_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REGULAR_GG_DICTIONARY%LAT_LAST_GP_DEG=FTEMP - - CASE ( REGULAR_GG_ITERATOR_LON_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_GG_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REGULAR_GG_DICTIONARY%LON_LAST_GP_DEG=FTEMP - - CASE ( REGULAR_GG_ITERATOR_IDIR_INC ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_GG_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REGULAR_GG_DICTIONARY%IDIR_INC=FTEMP - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REGULAR_GG_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE( ERRFLAG_CONVERT_REGULAR_GG_TO_ENUM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert REGULAR_GG to enumerator' ) - CASE( ERRFLAG_ALLOC_FAILURE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Allocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE( ERRFLAG_DEALLOC_FAILURE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Deallocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_SET_VALUE_FROM_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64( REGULAR_GG_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(INOUT) :: REGULAR_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_GG_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_GG_ITERATOR_TRUNCATE_DEGREES ) - REGULAR_GG_DICTIONARY%TRUNCATE_DEGREES = VALUE - - CASE ( REGULAR_GG_ITERATOR_NPTS_ALONG_MERIDIAN ) - REGULAR_GG_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_MERIDIAN = VALUE - - CASE ( REGULAR_GG_ITERATOR_NPTS_ALONG_PARALLEL ) - REGULAR_GG_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_PARALLEL = VALUE - - CASE ( REGULAR_GG_ITERATOR_NPARALLELS ) - REGULAR_GG_DICTIONARY%NUMBER_OF_PARALLELS_BETWEEN_POLE_AND_EQUATOR = VALUE - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REGULAR_GG_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64( REGULAR_GG_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(INOUT) :: REGULAR_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_GG_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_GG_ITERATOR_LAT_FIRST_GP_DEG ) - REGULAR_GG_DICTIONARY%LAT_FIRST_GP_DEG = VALUE - - CASE ( REGULAR_GG_ITERATOR_LON_FIRST_GP_DEG ) - REGULAR_GG_DICTIONARY%LON_FIRST_GP_DEG = VALUE - - CASE ( REGULAR_GG_ITERATOR_LAT_LAST_GP_DEG ) - REGULAR_GG_DICTIONARY%LAT_LAST_GP_DEG = VALUE - - CASE ( REGULAR_GG_ITERATOR_LON_LAST_GP_DEG ) - REGULAR_GG_DICTIONARY%LON_LAST_GP_DEG = VALUE - - CASE ( REGULAR_GG_ITERATOR_IDIR_INC ) - REGULAR_GG_DICTIONARY%IDIR_INC = VALUE - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REGULAR_GG_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( REGULAR_GG_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(INOUT) :: REGULAR_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_GG_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REGULAR_GG_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY' -PP_THREAD_SAFE FUNCTION REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( REGULAR_GG_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_GG_T), INTENT(INOUT) :: REGULAR_GG_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_GG_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_GG_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REGULAR_GG_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_GG_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE REGULAR_GG_DICTIONARY_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/regular_gg_dictionary_wrapper_mod.F90 b/src/multiom/encoders/api/dictionaries/regular_gg_dictionary_wrapper_mod.F90 deleted file mode 100644 index 916077627..000000000 --- a/src/multiom/encoders/api/dictionaries/regular_gg_dictionary_wrapper_mod.F90 +++ /dev/null @@ -1,801 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'regular_gg_dictionary_wrapper_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'REGULAR_GG_DICTIONARY_WRAPPER_MOD' -MODULE REGULAR_GG_DICTIONARY_WRAPPER_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - -IMPLICIT NONE - - !> Default module visibnility - PRIVATE - - !> REGULAR_GG_DICTIONARY index used used to identify the regular_gg_dictionary wrapper - INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_DICTIONARY_IDX_E = 5_JPIB_K - - !> Class used as a wrapper for the regular_gg_dictionary - TYPE :: REGULAR_GG_DICTIONARY_CONTAINER_T - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICTIONARY => NULL() - END TYPE - - !> Whitelist of public symbols - PUBLIC :: REGULAR_GG_DICTIONARY_IDX_E - - PUBLIC :: MAKE_REGULAR_GG_DICTIONARY - PUBLIC :: FREE_REGULAR_GG_DICTIONARY - PUBLIC :: EXTRACT_REGULAR_GG_DICTIONARY - -CONTAINS - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_REGULAR_GG_DICTIONARY' -PP_THREAD_SAFE FUNCTION MAKE_REGULAR_GG_DICTIONARY( WRAPPED_REGULAR_GG_DICTIONARY, & -& HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REGULAR_GG_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICTIONARY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REGULAR_GG_DICTIONARY_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CREATE_REGULAR_GG_DICTIONARY=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZE_REGULAR_GG_DICTIONARY=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INJECT_CHECKSUM=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_REGULAR_GG_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED ) - - !> Initialize the regular_gg_dictionary - REGULAR_GG_DICTIONARY => NULL() - - !> Create the regular_gg_dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_CREATE_REGULAR_GG_DICTIONARY) CREATE_REGULAR_GG_DICTIONARY( & -& WRAPPED_REGULAR_GG_DICTIONARY, REGULAR_GG_DICTIONARY, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(REGULAR_GG_DICTIONARY), ERRFLAG_REGULAR_GG_DICTIONARY_NOT_ASSOCIATED ) - - ! Initialize the regular_gg_dictionary - ! PP_TRYCALL(ERRFLAG_INITIALIZE_REGULAR_GG_DICTIONARY) REGULAR_GG_DICTIONARY%INIT( HOOKS ) - - ! Inject checksum - PP_TRYCALL(ERRFLAG_INJECT_CHECKSUM) INJECT_CHECKSUM_REGULAR_GG_DICTIONARY( WRAPPED_REGULAR_GG_DICTIONARY, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_GG_DICTIONARY already associated at function entry' ) - CASE (ERRFLAG_REGULAR_GG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_GG_DICTIONARY not associated after allocation' ) - CASE (ERRFLAG_UNABLE_TO_CREATE_REGULAR_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract regular_gg_dictionary' ) - CASE (ERRFLAG_INITIALIZE_REGULAR_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to initialize regular_gg_dictionary' ) - CASE (ERRFLAG_INJECT_CHECKSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_REGULAR_GG_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'FREE_REGULAR_GG_DICTIONARY' -PP_THREAD_SAFE FUNCTION FREE_REGULAR_GG_DICTIONARY( WRAPPED_REGULAR_GG_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_FREE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REGULAR_GG_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICTIONARY - TYPE(REGULAR_GG_DICTIONARY_CONTAINER_T) :: REGULAR_GG_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(REGULAR_GG_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_REGULAR_GG_DICTIONARY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REGULAR_GG_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_REGULAR_GG_DICTIONARY=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE_REGULAR_GG_DICTIONARY=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_WRAPPER=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_REGULAR_GG_DICTIONARY=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_REGULAR_GG_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_REGULAR_GG_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. REGULAR_GG_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - REGULAR_GG_DICTIONARY_CONTAINER = TRANSFER( BUFFER, REGULAR_GG_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(REGULAR_GG_DICTIONARY_CONTAINER%REGULAR_GG_DICTIONARY), ERRFLAG_REGULAR_GG_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the regular_gg_dictionary pointer - REGULAR_GG_DICTIONARY => REGULAR_GG_DICTIONARY_CONTAINER%REGULAR_GG_DICTIONARY - - ! Print the regular_gg_dictionary to be freed - !! MIVAL: This is a debug print statement that should be enable to debug the c/fortran interoperability - !! PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_REGULAR_GG_DICTIONARY) REGULAR_GG_DICTIONARY%PRINT( 6_JPIB_K, 0_JPIB_K, HOOKS ) - ! Free the regular_gg_dictionary - ! PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_REGULAR_GG_DICTIONARY) REGULAR_GG_DICTIONARY%FREE( HOOKS ) - - ! Deallocate the regular_gg_dictionary - DEALLOCATE( REGULAR_GG_DICTIONARY_CONTAINER%REGULAR_GG_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_DEALLOCATE_REGULAR_GG_DICTIONARY ) - REGULAR_GG_DICTIONARY_CONTAINER%REGULAR_GG_DICTIONARY => NULL() - REGULAR_GG_DICTIONARY => NULL() - - ! Error handling - BUFFER = 0_C_INT8_T - - ! Free the wrapper - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_WRAPPER) F_C_FREE_WRAPPER( & -& WRAPPER, HOOKS ) - WRAPPER => NULL() - BUFFER => NULL() - - ! Reset the c pointer - WRAPPED_REGULAR_GG_DICTIONARY = C_NULL_PTR - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_REGULAR_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract regular_gg_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_REGULAR_GG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_GG_DICTIONARY not associated' ) - CASE (ERRFLAG_UNABLE_TO_FREE_REGULAR_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free regular_gg_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE_REGULAR_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to deallocate regular_gg_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_FREE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free wrapper' ) - CASE (ERRFLAG_UNABLE_TO_PRINT_REGULAR_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to print regular_gg_dictionary' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION FREE_REGULAR_GG_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CREATE_REGULAR_GG_DICTIONARY' -PP_THREAD_SAFE FUNCTION CREATE_REGULAR_GG_DICTIONARY( WRAPPED_REGULAR_GG_DICTIONARY, REGULAR_GG_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REGULAR_GG_DICTIONARY - TYPE(REGULAR_GG_T), POINTER, INTENT(INOUT) :: REGULAR_GG_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(REGULAR_GG_DICTIONARY_CONTAINER_T) :: REGULAR_GG_DICTIONARY_CONTAINER - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(REGULAR_GG_DICTIONARY_CONTAINER) / 8_JPIB_K - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REGULAR_GG_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_REGULAR_GG_DICTIONARY=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_REGULAR_GG_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(REGULAR_GG_DICTIONARY), ERRFLAG_REGULAR_GG_DICTIONARY_ALREADY_ASSOCIATED) - - ! Allocate the regular_gg_dictionary - ALLOCATE( REGULAR_GG_DICTIONARY_CONTAINER%REGULAR_GG_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_ALLOCATE_REGULAR_GG_DICTIONARY ) - - ! Allocate the wrapper - WRAPPER => NULL() - BUFFER => NULL() - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) F_C_ALLOCATE_WRAPPER( & -& WRAPPER, BUFFER, REGULAR_GG_DICTIONARY_IDX_E, REGULAR_GG_DICTIONARY_CONTAINER_BYTE_SIZE, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - - ! Wrap the regular_gg_dictionary in order to be able to expose it to c - BUFFER = TRANSFER(REGULAR_GG_DICTIONARY_CONTAINER, BUFFER, REGULAR_GG_DICTIONARY_CONTAINER_BYTE_SIZE ) - - ! Set the return arguments - REGULAR_GG_DICTIONARY => REGULAR_GG_DICTIONARY_CONTAINER%REGULAR_GG_DICTIONARY - WRAPPED_REGULAR_GG_DICTIONARY = C_LOC(WRAPPER) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper already associated' ) - CASE (ERRFLAG_REGULAR_GG_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_GG_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_REGULAR_GG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate regular_gg_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate wrapper' ) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated after allocation' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated after allocation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CREATE_REGULAR_GG_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'INJECT_CHECKSUM_REGULAR_GG_DICTIONARY' -PP_THREAD_SAFE FUNCTION INJECT_CHECKSUM_REGULAR_GG_DICTIONARY( WRAPPED_REGULAR_GG_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_INJECT_CHECKSUM_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REGULAR_GG_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_REGULAR_GG_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_REGULAR_GG_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - PP_TRYCALL(ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) F_C_INJECT_CHECKSUM_WRAPPER( WRAPPER, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION INJECT_CHECKSUM_REGULAR_GG_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'EXTRACT_REGULAR_GG_DICTIONARY' -PP_THREAD_SAFE FUNCTION EXTRACT_REGULAR_GG_DICTIONARY( WRAPPED_REGULAR_GG_DICTIONARY, REGULAR_GG_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_REGULAR_GG_DICTIONARY - TYPE(REGULAR_GG_T), POINTER, INTENT(INOUT) :: REGULAR_GG_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(REGULAR_GG_DICTIONARY_CONTAINER_T) :: REGULAR_GG_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_GG_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(REGULAR_GG_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REGULAR_GG_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REGULAR_GG_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_REGULAR_GG_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(REGULAR_GG_DICTIONARY), ERRFLAG_REGULAR_GG_DICTIONARY_ALREADY_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_REGULAR_GG_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. REGULAR_GG_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - REGULAR_GG_DICTIONARY_CONTAINER = TRANSFER( BUFFER, REGULAR_GG_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(REGULAR_GG_DICTIONARY_CONTAINER%REGULAR_GG_DICTIONARY), ERRFLAG_REGULAR_GG_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the regular_gg_dictionary pointer - REGULAR_GG_DICTIONARY => REGULAR_GG_DICTIONARY_CONTAINER%REGULAR_GG_DICTIONARY - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_REGULAR_GG_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_GG_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_REGULAR_GG_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_GG_DICTIONARY not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION EXTRACT_REGULAR_GG_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE REGULAR_GG_DICTIONARY_WRAPPER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/regular_ll_dictionary_utils_mod.F90 b/src/multiom/encoders/api/dictionaries/regular_ll_dictionary_utils_mod.F90 deleted file mode 100644 index 10ec27932..000000000 --- a/src/multiom/encoders/api/dictionaries/regular_ll_dictionary_utils_mod.F90 +++ /dev/null @@ -1,1515 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'regular_ll_dictionary_utils_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'REGULAR_LL_DICTIONARY_UTILS_MOD' -MODULE REGULAR_LL_DICTIONARY_UTILS_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -!> Enumerators for the iterator -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_ITERATOR_NPTS_ALONG_MERIDIAN = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_ITERATOR_NPTS_ALONG_PARALLEL = 2_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_ITERATOR_LAT_FIRST_GP_DEG = 3_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_ITERATOR_LON_FIRST_GP_DEG = 4_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_ITERATOR_LAT_LAST_GP_DEG = 5_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_ITERATOR_LON_LAST_GP_DEG = 6_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_ITERATOR_IDIR_INC = 7_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_ITERATOR_JDIR_INC = 8_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_ITERATOR_UNDEF = 9_JPIB_K - - -! Whitelist of public symbols -PUBLIC :: REGULAR_LL_DICTIONARY_MAX_ITERATOR -PUBLIC :: REGULAR_LL_DICTIONARY_INIT_ITERATOR -PUBLIC :: REGULAR_LL_DICTIONARY_NAME2ITERATOR -PUBLIC :: REGULAR_LL_DICTIONARY_GET_NEXT_ITERATOR -PUBLIC :: REGULAR_LL_DICTIONARY_HAS -PUBLIC :: REGULAR_LL_DICTIONARY_GET_KEY_AS_STRING -PUBLIC :: REGULAR_LL_DICTIONARY_GET_VALUE_AS_STRING - -PUBLIC :: REGULAR_LL_DICTIONARY_SET_VALUE_FROM_STRING -PUBLIC :: REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64 -PUBLIC :: REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64 -PUBLIC :: REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -PUBLIC :: REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_MAX_ITERATOR' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_MAX_ITERATOR( REGULAR_LL_DICTIONARY, MAX_ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(IN) :: REGULAR_LL_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: MAX_ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - MAX_ITERATOR = REGULAR_LL_ITERATOR_UNDEF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_MAX_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_INIT_ITERATOR' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_INIT_ITERATOR( REGULAR_LL_DICTIONARY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(IN) :: REGULAR_LL_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - ITERATOR = 1_JPIB_K - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_INIT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_GET_NEXT_ITERATOR' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_GET_NEXT_ITERATOR( REGULAR_LL_DICTIONARY, ITERATOR, END_OF_ITERATORS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(IN) :: REGULAR_LL_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: END_OF_ITERATORS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - LOGICAL :: HAS_KEY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HAS_ITERATOR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - HAS_KEY = .FALSE. - END_OF_ITERATORS = .FALSE. - DO WHILE(.NOT.HAS_KEY) - - ! Get the next iterator - ITERATOR = ITERATOR + 1 - - ! Check if the iterator is the last one - IF ( ITERATOR .EQ. REGULAR_LL_ITERATOR_UNDEF ) THEN - END_OF_ITERATORS = .TRUE. - HAS_KEY = .TRUE. - ELSE - PP_TRYCALL(ERRFLAG_HAS_ITERATOR) REGULAR_LL_DICTIONARY_HAS( REGULAR_LL_DICTIONARY, ITERATOR, HAS_KEY, HOOKS ) - ENDIF - - ENDDO - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_HAS_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to check if the iterator exists' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_GET_NEXT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_NAME2ITERATOR' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_NAME2ITERATOR( REGULAR_LL_DICTIONARY, KEY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(IN) :: REGULAR_LL_DICTIONARY - CHARACTER(LEN=*), INTENT(IN) :: KEY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=LEN(KEY)) :: KEY_LOW - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_LL_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Convert to string to lowercase - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( KEY, KEY_LOW, HOOKS ) - - ! Get the iterator from the key name - SELECT CASE ( KEY_LOW ) - - CASE ( 'numberofpointsalongameridian', 'number-of-points-along-a-meridian' ) - ITERATOR = REGULAR_LL_ITERATOR_NPTS_ALONG_MERIDIAN - - CASE ( 'numberofpointsalongaparallel', 'number-of-points-along-a-parallel' ) - ITERATOR = REGULAR_LL_ITERATOR_NPTS_ALONG_PARALLEL - - CASE ( 'latitudeoffirstgridpointindegrees', 'latitude-of-first-grid-point-in-degrees' ) - ITERATOR = REGULAR_LL_ITERATOR_LAT_FIRST_GP_DEG - - CASE ( 'longitudeoffirstgridpointindegrees', 'longitude-of-first-grid-point-in-degrees' ) - ITERATOR = REGULAR_LL_ITERATOR_LON_FIRST_GP_DEG - - CASE ( 'latitudeoflastgridpointindegrees', 'latitude-of-last-grid-point-in-degrees' ) - ITERATOR = REGULAR_LL_ITERATOR_LAT_LAST_GP_DEG - - CASE ( 'longitudeoflastgridpointindegrees', 'longitude-of-last-grid-point-in-degrees' ) - ITERATOR = REGULAR_LL_ITERATOR_LON_LAST_GP_DEG - - CASE ( 'idirectionincrementindegrees', 'i-direction-increment-in-degrees' ) - ITERATOR = REGULAR_LL_ITERATOR_IDIR_INC - - CASE ( 'jdirectionincrementindegrees', 'j-direction-increment-in-degrees' ) - ITERATOR = REGULAR_LL_ITERATOR_JDIR_INC - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_LL_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_CONVERT_LC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert to lowercase' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'key: '//TRIM(ADJUSTL(KEY)) ) - CASE(ERRFLAG_NO_REGULAR_LL_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'No REGULAR_LL key found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_NAME2ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_HAS' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_HAS( REGULAR_LL_DICTIONARY, ITERATOR, HAS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(IN) :: REGULAR_LL_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_LL_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_LL_ITERATOR_NPTS_ALONG_MERIDIAN ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_NPTS_ALONG_PARALLEL ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_LAT_FIRST_GP_DEG ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_LON_FIRST_GP_DEG ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_LAT_LAST_GP_DEG ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_LON_LAST_GP_DEG ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_IDIR_INC ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_JDIR_INC ) - HAS = .TRUE. - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_LL_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_REGULAR_LL_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_HAS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_GET_KEY_AS_STRING' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_GET_KEY_AS_STRING( REGULAR_LL_DICTIONARY, ITERATOR, KEY, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(IN) :: REGULAR_LL_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=64), INTENT(OUT) :: KEY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_LL_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_ENUM_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize the value - KEY = REPEAT( ' ', LEN(KEY) ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_LL_ITERATOR_NPTS_ALONG_MERIDIAN ) - KEY = 'number-of-points-along-a-meridian' - - CASE ( REGULAR_LL_ITERATOR_NPTS_ALONG_PARALLEL ) - KEY = 'number-of-points-along-a-parallel' - - CASE ( REGULAR_LL_ITERATOR_LAT_FIRST_GP_DEG ) - KEY = 'latitude-of-first-grid-point-in-degrees' - - CASE ( REGULAR_LL_ITERATOR_LON_FIRST_GP_DEG ) - KEY = 'longitude-of-first-grid-point-in-degrees' - - CASE ( REGULAR_LL_ITERATOR_LAT_LAST_GP_DEG ) - KEY = 'latitude-of-last-grid-point-in-degrees' - - CASE ( REGULAR_LL_ITERATOR_LON_LAST_GP_DEG ) - KEY = 'longitude-of-last-grid-point-in-degrees' - - CASE ( REGULAR_LL_ITERATOR_IDIR_INC ) - KEY = 'iDirectionIncrementInDegrees' - - CASE ( REGULAR_LL_ITERATOR_JDIR_INC ) - KEY = 'jDirectionIncrementInDegrees' - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_LL_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_REGULAR_LL_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_ENUM_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_GET_KEY_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_GET_VALUE_AS_STRING' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_GET_VALUE_AS_STRING( REGULAR_LL_DICTIONARY, ITERATOR, VALUE, HAS, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_GENERAL_UTILS_MOD, ONLY: CONVERT_TO_C_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(IN) :: REGULAR_LL_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - TYPE(C_PTR), INTENT(OUT) :: VALUE - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_LL_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_TO_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_LL_ITERATOR_NPTS_ALONG_MERIDIAN ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_LL_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_MERIDIAN, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_NPTS_ALONG_PARALLEL ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_LL_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_PARALLEL, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_LAT_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_LL_DICTIONARY%LAT_FIRST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_LON_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_LL_DICTIONARY%LON_FIRST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_LAT_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_LL_DICTIONARY%LAT_LAST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_LON_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_LL_DICTIONARY%LON_LAST_GP_DEG, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_IDIR_INC ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_LL_DICTIONARY%IDIR_INC, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( REGULAR_LL_ITERATOR_JDIR_INC ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( REGULAR_LL_DICTIONARY%JDIR_INC, VALUE, HOOKS ) - HAS = .TRUE. - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_LL_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_REGULAR_LL_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_TO_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_GET_VALUE_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_SET_VALUE_FROM_STRING' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_SET_VALUE_FROM_STRING( REGULAR_LL_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: CINT2IINT - USE :: ENUMERATORS_MOD, ONLY: CFLOAT2IFLOAT - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_REAL_ARRAY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(INOUT) :: REGULAR_LL_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=*), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ITEMP - REAL(KIND=JPRD_K) :: FTEMP - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - REAL(KIND=JPRD_K), DIMENSION(:), ALLOCATABLE :: F_ARR - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_LL_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_REGULAR_LL_TO_ENUM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOC_FAILURE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOC_FAILURE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_LL_ITERATOR_NPTS_ALONG_MERIDIAN ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_LL_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - REGULAR_LL_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_MERIDIAN=ITEMP - - CASE ( REGULAR_LL_ITERATOR_NPTS_ALONG_PARALLEL ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_LL_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - REGULAR_LL_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_PARALLEL=ITEMP - - CASE ( REGULAR_LL_ITERATOR_LAT_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_LL_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REGULAR_LL_DICTIONARY%LAT_FIRST_GP_DEG=FTEMP - - CASE ( REGULAR_LL_ITERATOR_LON_FIRST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_LL_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REGULAR_LL_DICTIONARY%LON_FIRST_GP_DEG=FTEMP - - CASE ( REGULAR_LL_ITERATOR_LAT_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_LL_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REGULAR_LL_DICTIONARY%LAT_LAST_GP_DEG=FTEMP - - CASE ( REGULAR_LL_ITERATOR_LON_LAST_GP_DEG ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_LL_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REGULAR_LL_DICTIONARY%LON_LAST_GP_DEG=FTEMP - - CASE ( REGULAR_LL_ITERATOR_IDIR_INC ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_LL_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REGULAR_LL_DICTIONARY%IDIR_INC=FTEMP - - CASE ( REGULAR_LL_ITERATOR_JDIR_INC ) - PP_TRYCALL(ERRFLAG_CONVERT_REGULAR_LL_TO_ENUM) CFLOAT2IFLOAT(VALUE, FTEMP, HOOKS) - REGULAR_LL_DICTIONARY%JDIR_INC=FTEMP - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_LL_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REGULAR_LL_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE( ERRFLAG_CONVERT_REGULAR_LL_TO_ENUM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert REGULAR_LL to enumerator' ) - CASE( ERRFLAG_ALLOC_FAILURE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Allocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE( ERRFLAG_DEALLOC_FAILURE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Deallocation failure' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG, STAT=DEALLOC_STATUS) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_SET_VALUE_FROM_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64( REGULAR_LL_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(INOUT) :: REGULAR_LL_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_LL_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_LL_ITERATOR_NPTS_ALONG_MERIDIAN ) - REGULAR_LL_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_MERIDIAN = VALUE - - CASE ( REGULAR_LL_ITERATOR_NPTS_ALONG_PARALLEL ) - REGULAR_LL_DICTIONARY%NUMBER_OF_POINTS_ALONG_A_PARALLEL = VALUE - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_LL_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REGULAR_LL_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64( REGULAR_LL_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(INOUT) :: REGULAR_LL_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_LL_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( REGULAR_LL_ITERATOR_LAT_FIRST_GP_DEG ) - REGULAR_LL_DICTIONARY%LAT_FIRST_GP_DEG = VALUE - - CASE ( REGULAR_LL_ITERATOR_LON_FIRST_GP_DEG ) - REGULAR_LL_DICTIONARY%LON_FIRST_GP_DEG = VALUE - - CASE ( REGULAR_LL_ITERATOR_LAT_LAST_GP_DEG ) - REGULAR_LL_DICTIONARY%LAT_LAST_GP_DEG = VALUE - - CASE ( REGULAR_LL_ITERATOR_LON_LAST_GP_DEG ) - REGULAR_LL_DICTIONARY%LON_LAST_GP_DEG = VALUE - - CASE ( REGULAR_LL_ITERATOR_IDIR_INC ) - REGULAR_LL_DICTIONARY%IDIR_INC = VALUE - - CASE ( REGULAR_LL_ITERATOR_JDIR_INC ) - REGULAR_LL_DICTIONARY%JDIR_INC = VALUE - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_LL_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REGULAR_LL_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( REGULAR_LL_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(INOUT) :: REGULAR_LL_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_LL_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_LL_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REGULAR_LL_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY' -PP_THREAD_SAFE FUNCTION REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( REGULAR_LL_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(REGULAR_LL_T), INTENT(INOUT) :: REGULAR_LL_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_REGULAR_LL_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_REGULAR_LL_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_REGULAR_LL_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION REGULAR_LL_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE REGULAR_LL_DICTIONARY_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/regular_ll_dictionary_wrapper_mod.F90 b/src/multiom/encoders/api/dictionaries/regular_ll_dictionary_wrapper_mod.F90 deleted file mode 100644 index a321086c2..000000000 --- a/src/multiom/encoders/api/dictionaries/regular_ll_dictionary_wrapper_mod.F90 +++ /dev/null @@ -1,801 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'regular_ll_dictionary_wrapper_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'REGULAR_LL_DICTIONARY_WRAPPER_MOD' -MODULE REGULAR_LL_DICTIONARY_WRAPPER_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - -IMPLICIT NONE - - !> Default module visibnility - PRIVATE - - !> REGULAR_LL_DICTIONARY index used used to identify the regular_ll_dictionary wrapper - INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_DICTIONARY_IDX_E = 4_JPIB_K - - !> Class used as a wrapper for the regular_ll_dictionary - TYPE :: REGULAR_LL_DICTIONARY_CONTAINER_T - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICTIONARY => NULL() - END TYPE - - !> Whitelist of public symbols - PUBLIC :: REGULAR_LL_DICTIONARY_IDX_E - - PUBLIC :: MAKE_REGULAR_LL_DICTIONARY - PUBLIC :: FREE_REGULAR_LL_DICTIONARY - PUBLIC :: EXTRACT_REGULAR_LL_DICTIONARY - -CONTAINS - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_REGULAR_LL_DICTIONARY' -PP_THREAD_SAFE FUNCTION MAKE_REGULAR_LL_DICTIONARY( WRAPPED_REGULAR_LL_DICTIONARY, & -& HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REGULAR_LL_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICTIONARY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REGULAR_LL_DICTIONARY_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CREATE_REGULAR_LL_DICTIONARY=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZE_REGULAR_LL_DICTIONARY=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INJECT_CHECKSUM=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_REGULAR_LL_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED ) - - !> Initialize the regular_ll_dictionary - REGULAR_LL_DICTIONARY => NULL() - - !> Create the regular_ll_dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_CREATE_REGULAR_LL_DICTIONARY) CREATE_REGULAR_LL_DICTIONARY( & -& WRAPPED_REGULAR_LL_DICTIONARY, REGULAR_LL_DICTIONARY, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(REGULAR_LL_DICTIONARY), ERRFLAG_REGULAR_LL_DICTIONARY_NOT_ASSOCIATED ) - - ! Initialize the regular_ll_dictionary - ! PP_TRYCALL(ERRFLAG_INITIALIZE_REGULAR_LL_DICTIONARY) REGULAR_LL_DICTIONARY%INIT( HOOKS ) - - ! Inject checksum - PP_TRYCALL(ERRFLAG_INJECT_CHECKSUM) INJECT_CHECKSUM_REGULAR_LL_DICTIONARY( WRAPPED_REGULAR_LL_DICTIONARY, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_LL_DICTIONARY already associated at function entry' ) - CASE (ERRFLAG_REGULAR_LL_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_LL_DICTIONARY not associated after allocation' ) - CASE (ERRFLAG_UNABLE_TO_CREATE_REGULAR_LL_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract regular_ll_dictionary' ) - CASE (ERRFLAG_INITIALIZE_REGULAR_LL_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to initialize regular_ll_dictionary' ) - CASE (ERRFLAG_INJECT_CHECKSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_REGULAR_LL_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'FREE_REGULAR_LL_DICTIONARY' -PP_THREAD_SAFE FUNCTION FREE_REGULAR_LL_DICTIONARY( WRAPPED_REGULAR_LL_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_FREE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REGULAR_LL_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICTIONARY - TYPE(REGULAR_LL_DICTIONARY_CONTAINER_T) :: REGULAR_LL_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(REGULAR_LL_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_REGULAR_LL_DICTIONARY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REGULAR_LL_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_REGULAR_LL_DICTIONARY=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE_REGULAR_LL_DICTIONARY=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_WRAPPER=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_REGULAR_LL_DICTIONARY=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_REGULAR_LL_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_REGULAR_LL_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. REGULAR_LL_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - REGULAR_LL_DICTIONARY_CONTAINER = TRANSFER( BUFFER, REGULAR_LL_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(REGULAR_LL_DICTIONARY_CONTAINER%REGULAR_LL_DICTIONARY), ERRFLAG_REGULAR_LL_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the regular_ll_dictionary pointer - REGULAR_LL_DICTIONARY => REGULAR_LL_DICTIONARY_CONTAINER%REGULAR_LL_DICTIONARY - - ! Print the regular_ll_dictionary to be freed - !! MIVAL: This is a debug print statement that should be enable to debug the c/fortran interoperability - !! PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_REGULAR_LL_DICTIONARY) REGULAR_LL_DICTIONARY%PRINT( 6_JPIB_K, 0_JPIB_K, HOOKS ) - ! Free the regular_ll_dictionary - ! PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_REGULAR_LL_DICTIONARY) REGULAR_LL_DICTIONARY%FREE( HOOKS ) - - ! Deallocate the regular_ll_dictionary - DEALLOCATE( REGULAR_LL_DICTIONARY_CONTAINER%REGULAR_LL_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_DEALLOCATE_REGULAR_LL_DICTIONARY ) - REGULAR_LL_DICTIONARY_CONTAINER%REGULAR_LL_DICTIONARY => NULL() - REGULAR_LL_DICTIONARY => NULL() - - ! Error handling - BUFFER = 0_C_INT8_T - - ! Free the wrapper - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_WRAPPER) F_C_FREE_WRAPPER( & -& WRAPPER, HOOKS ) - WRAPPER => NULL() - BUFFER => NULL() - - ! Reset the c pointer - WRAPPED_REGULAR_LL_DICTIONARY = C_NULL_PTR - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_REGULAR_LL_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract regular_ll_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_REGULAR_LL_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_LL_DICTIONARY not associated' ) - CASE (ERRFLAG_UNABLE_TO_FREE_REGULAR_LL_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free regular_ll_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE_REGULAR_LL_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to deallocate regular_ll_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_FREE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free wrapper' ) - CASE (ERRFLAG_UNABLE_TO_PRINT_REGULAR_LL_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to print regular_ll_dictionary' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION FREE_REGULAR_LL_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CREATE_REGULAR_LL_DICTIONARY' -PP_THREAD_SAFE FUNCTION CREATE_REGULAR_LL_DICTIONARY( WRAPPED_REGULAR_LL_DICTIONARY, REGULAR_LL_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REGULAR_LL_DICTIONARY - TYPE(REGULAR_LL_T), POINTER, INTENT(INOUT) :: REGULAR_LL_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(REGULAR_LL_DICTIONARY_CONTAINER_T) :: REGULAR_LL_DICTIONARY_CONTAINER - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(REGULAR_LL_DICTIONARY_CONTAINER) / 8_JPIB_K - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REGULAR_LL_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_REGULAR_LL_DICTIONARY=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_REGULAR_LL_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(REGULAR_LL_DICTIONARY), ERRFLAG_REGULAR_LL_DICTIONARY_ALREADY_ASSOCIATED) - - ! Allocate the regular_ll_dictionary - ALLOCATE( REGULAR_LL_DICTIONARY_CONTAINER%REGULAR_LL_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_ALLOCATE_REGULAR_LL_DICTIONARY ) - - ! Allocate the wrapper - WRAPPER => NULL() - BUFFER => NULL() - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) F_C_ALLOCATE_WRAPPER( & -& WRAPPER, BUFFER, REGULAR_LL_DICTIONARY_IDX_E, REGULAR_LL_DICTIONARY_CONTAINER_BYTE_SIZE, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - - ! Wrap the regular_ll_dictionary in order to be able to expose it to c - BUFFER = TRANSFER(REGULAR_LL_DICTIONARY_CONTAINER, BUFFER, REGULAR_LL_DICTIONARY_CONTAINER_BYTE_SIZE ) - - ! Set the return arguments - REGULAR_LL_DICTIONARY => REGULAR_LL_DICTIONARY_CONTAINER%REGULAR_LL_DICTIONARY - WRAPPED_REGULAR_LL_DICTIONARY = C_LOC(WRAPPER) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper already associated' ) - CASE (ERRFLAG_REGULAR_LL_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_LL_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_REGULAR_LL_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate regular_ll_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate wrapper' ) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated after allocation' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated after allocation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CREATE_REGULAR_LL_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'INJECT_CHECKSUM_REGULAR_LL_DICTIONARY' -PP_THREAD_SAFE FUNCTION INJECT_CHECKSUM_REGULAR_LL_DICTIONARY( WRAPPED_REGULAR_LL_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_INJECT_CHECKSUM_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_REGULAR_LL_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_REGULAR_LL_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_REGULAR_LL_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - PP_TRYCALL(ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) F_C_INJECT_CHECKSUM_WRAPPER( WRAPPER, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION INJECT_CHECKSUM_REGULAR_LL_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'EXTRACT_REGULAR_LL_DICTIONARY' -PP_THREAD_SAFE FUNCTION EXTRACT_REGULAR_LL_DICTIONARY( WRAPPED_REGULAR_LL_DICTIONARY, REGULAR_LL_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_REGULAR_LL_DICTIONARY - TYPE(REGULAR_LL_T), POINTER, INTENT(INOUT) :: REGULAR_LL_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(REGULAR_LL_DICTIONARY_CONTAINER_T) :: REGULAR_LL_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: REGULAR_LL_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(REGULAR_LL_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REGULAR_LL_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REGULAR_LL_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_REGULAR_LL_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(REGULAR_LL_DICTIONARY), ERRFLAG_REGULAR_LL_DICTIONARY_ALREADY_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_REGULAR_LL_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. REGULAR_LL_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - REGULAR_LL_DICTIONARY_CONTAINER = TRANSFER( BUFFER, REGULAR_LL_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(REGULAR_LL_DICTIONARY_CONTAINER%REGULAR_LL_DICTIONARY), ERRFLAG_REGULAR_LL_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the regular_ll_dictionary pointer - REGULAR_LL_DICTIONARY => REGULAR_LL_DICTIONARY_CONTAINER%REGULAR_LL_DICTIONARY - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_REGULAR_LL_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_LL_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_REGULAR_LL_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REGULAR_LL_DICTIONARY not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION EXTRACT_REGULAR_LL_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE REGULAR_LL_DICTIONARY_WRAPPER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/sh_dictionary_utils_mod.F90 b/src/multiom/encoders/api/dictionaries/sh_dictionary_utils_mod.F90 deleted file mode 100644 index 8bda6196c..000000000 --- a/src/multiom/encoders/api/dictionaries/sh_dictionary_utils_mod.F90 +++ /dev/null @@ -1,1388 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'sh_dictionary_utils_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'SH_DICTIONARY_UTILS_MOD' -MODULE SH_DICTIONARY_UTILS_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -!> Enumerators for the iterator -INTEGER(KIND=JPIB_K), PARAMETER :: SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_J = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_K = 2_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_M = 3_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: SH_ITERATOR_UNDEF = 4_JPIB_K - - -! Whitelist of public symbols -PUBLIC :: SH_DICTIONARY_MAX_ITERATOR -PUBLIC :: SH_DICTIONARY_INIT_ITERATOR -PUBLIC :: SH_DICTIONARY_NAME2ITERATOR -PUBLIC :: SH_DICTIONARY_GET_NEXT_ITERATOR -PUBLIC :: SH_DICTIONARY_HAS -PUBLIC :: SH_DICTIONARY_GET_KEY_AS_STRING -PUBLIC :: SH_DICTIONARY_GET_VALUE_AS_STRING -PUBLIC :: SH_DICTIONARY_SET_VALUE_FROM_STRING -PUBLIC :: SH_DICTIONARY_SET_VALUE_FROM_INT64 -PUBLIC :: SH_DICTIONARY_SET_VALUE_FROM_REAL64 -PUBLIC :: SH_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -PUBLIC :: SH_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_MAX_ITERATOR' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_MAX_ITERATOR( SH_DICTIONARY, MAX_ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(IN) :: SH_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: MAX_ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - MAX_ITERATOR = SH_ITERATOR_UNDEF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_MAX_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_INIT_ITERATOR' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_INIT_ITERATOR( SH_DICTIONARY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(IN) :: SH_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - ITERATOR = 1_JPIB_K - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_INIT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_GET_NEXT_ITERATOR' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_GET_NEXT_ITERATOR( SH_DICTIONARY, ITERATOR, END_OF_ITERATORS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(IN) :: SH_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: END_OF_ITERATORS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - LOGICAL :: HAS_KEY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_HAS_ITERATOR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Set the maximum iterator - HAS_KEY = .FALSE. - END_OF_ITERATORS = .FALSE. - DO WHILE(.NOT.HAS_KEY) - - ! Get the next iterator - ITERATOR = ITERATOR + 1 - - ! Check if the iterator is the last one - IF ( ITERATOR .EQ. SH_ITERATOR_UNDEF ) THEN - END_OF_ITERATORS = .TRUE. - HAS_KEY = .TRUE. - ELSE - PP_TRYCALL(ERRFLAG_HAS_ITERATOR) SH_DICTIONARY_HAS( SH_DICTIONARY, ITERATOR, HAS_KEY, HOOKS ) - ENDIF - - ENDDO - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_HAS_ITERATOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to check if the iterator exists' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_GET_NEXT_ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_NAME2ITERATOR' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_NAME2ITERATOR( SH_DICTIONARY, KEY, ITERATOR, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(IN) :: SH_DICTIONARY - CHARACTER(LEN=*), INTENT(IN) :: KEY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - CHARACTER(LEN=LEN(KEY)) :: KEY_LOW - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_SH_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Convert to string to lowercase - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( KEY, KEY_LOW, HOOKS ) - - ! Get the iterator from the key name - SELECT CASE ( KEY_LOW ) - - CASE ( 'pentagonalresolutionparameterj', 'pentagonal-resolution-parameter-j', 'pentagonal-resolution-j' ) - ITERATOR = SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_J - - CASE ( 'pentagonalresolutionparameterk', 'pentagonal-resolution-parameter-k', 'pentagonal-resolution-k' ) - ITERATOR = SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_K - - CASE ( 'pentagonalresolutionparameterm', 'pentagonal-resolution-parameter-m', 'pentagonal-resolution-m' ) - ITERATOR = SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_M - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_SH_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_CONVERT_LC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert to lowercase' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'key: '//TRIM(ADJUSTL(KEY)) ) - CASE(ERRFLAG_NO_SH_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'No SH key found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_NAME2ITERATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_HAS' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_HAS( SH_DICTIONARY, ITERATOR, HAS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(IN) :: SH_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(INOUT) :: ITERATOR - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_SH_KEY=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_J ) - HAS = .TRUE. - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_K ) - HAS = .TRUE. - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_M ) - HAS = .TRUE. - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_SH_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error variables - CHARACTER(LEN=32) :: CIT - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_SH_KEY) - CIT=REPEAT(' ',32) - WRITE(CIT,'(I32)') ITERATOR - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Iterator value is: '//TRIM(ADJUSTL(CIT)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_HAS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_GET_KEY_AS_STRING' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_GET_KEY_AS_STRING( SH_DICTIONARY, ITERATOR, KEY, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(IN) :: SH_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=64), INTENT(OUT) :: KEY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_SH_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_ENUM_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize the value - KEY = REPEAT( ' ', LEN(KEY) ) - - SELECT CASE ( ITERATOR ) - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_J ) - KEY = 'pentagonalResolutionParameterJ' - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_K ) - KEY = 'pentagonalResolutionParameterK' - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_M ) - KEY = 'pentagonalResolutionParameterM' - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_SH_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_SH_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_ENUM_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_GET_KEY_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_GET_VALUE_AS_STRING' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_GET_VALUE_AS_STRING( SH_DICTIONARY, ITERATOR, VALUE, HAS, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_GENERAL_UTILS_MOD, ONLY: CONVERT_TO_C_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(IN) :: SH_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - TYPE(C_PTR), INTENT(OUT) :: VALUE - LOGICAL, INTENT(OUT) :: HAS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_SH_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_TO_STRING=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_J ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( SH_DICTIONARY%PENTAGONAL_RESOLUTIONS_PAR_J, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_K ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( SH_DICTIONARY%PENTAGONAL_RESOLUTIONS_PAR_K, VALUE, HOOKS ) - HAS = .TRUE. - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_M ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) CONVERT_TO_C_STRING( SH_DICTIONARY%PENTAGONAL_RESOLUTIONS_PAR_M, VALUE, HOOKS ) - HAS = .TRUE. - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_SH_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_NO_SH_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE(ERRFLAG_CONVERT_TO_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert enumerator to string' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_GET_VALUE_AS_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_SET_VALUE_FROM_STRING' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_SET_VALUE_FROM_STRING( SH_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: CINT2IINT - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(INOUT) :: SH_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - CHARACTER(LEN=*), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ITEMP - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_SH_KEY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_SH_TO_ENUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_J ) - PP_TRYCALL(ERRFLAG_CONVERT_SH_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - SH_DICTIONARY%PENTAGONAL_RESOLUTIONS_PAR_J=ITEMP - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_K ) - PP_TRYCALL(ERRFLAG_CONVERT_SH_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - SH_DICTIONARY%PENTAGONAL_RESOLUTIONS_PAR_K=ITEMP - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_M ) - PP_TRYCALL(ERRFLAG_CONVERT_SH_TO_ENUM) CINT2IINT(VALUE, ITEMP, HOOKS) - SH_DICTIONARY%PENTAGONAL_RESOLUTIONS_PAR_M=ITEMP - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_SH_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_SH_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE( ERRFLAG_CONVERT_SH_TO_ENUM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to convert SH to enumerator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_SET_VALUE_FROM_STRING -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_SET_VALUE_FROM_INT64' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_SET_VALUE_FROM_INT64( SH_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(INOUT) :: SH_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_SH_KEY=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_J ) - SH_DICTIONARY%PENTAGONAL_RESOLUTIONS_PAR_J = VALUE - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_K ) - SH_DICTIONARY%PENTAGONAL_RESOLUTIONS_PAR_K = VALUE - - CASE ( SH_ITERATOR_PENTAGONAL_RESOLUTIONS_PAR_M ) - SH_DICTIONARY%PENTAGONAL_RESOLUTIONS_PAR_M = VALUE - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_SH_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_SH_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_SET_VALUE_FROM_INT64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_SET_VALUE_FROM_REAL64' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_SET_VALUE_FROM_REAL64( SH_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(INOUT) :: SH_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_SH_KEY=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_SH_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_SH_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_SET_VALUE_FROM_REAL64 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY( SH_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(INOUT) :: SH_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - INTEGER(KIND=JPIB_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_SH_KEY=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_SH_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_SH_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_SET_VALUE_FROM_INT64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SH_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY' -PP_THREAD_SAFE FUNCTION SH_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY( SH_DICTIONARY, ITERATOR, VALUE, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(SH_T), INTENT(INOUT) :: SH_DICTIONARY - INTEGER(KIND=JPIB_K), INTENT(IN) :: ITERATOR - REAL(KIND=JPRD_K), DIMENSION(:), INTENT(IN) :: VALUE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_SH_KEY=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( ITERATOR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NO_SH_KEY ) - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE( ERRFLAG_NO_SH_KEY ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid enumerator found' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SH_DICTIONARY_SET_VALUE_FROM_REAL64_ARRAY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE SH_DICTIONARY_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/dictionaries/sh_dictionary_wrapper_mod.F90 b/src/multiom/encoders/api/dictionaries/sh_dictionary_wrapper_mod.F90 deleted file mode 100644 index 53013c304..000000000 --- a/src/multiom/encoders/api/dictionaries/sh_dictionary_wrapper_mod.F90 +++ /dev/null @@ -1,801 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'sh_dictionary_wrapper_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'SH_DICTIONARY_WRAPPER_MOD' -MODULE SH_DICTIONARY_WRAPPER_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - - ! Symbols imported from other modules within the project. - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - -IMPLICIT NONE - - !> Default module visibnility - PRIVATE - - !> SH_DICTIONARY index used used to identify the sh_dictionary wrapper - INTEGER(KIND=JPIB_K), PARAMETER :: SH_DICTIONARY_IDX_E = 7_JPIB_K - - !> Class used as a wrapper for the sh_dictionary - TYPE :: SH_DICTIONARY_CONTAINER_T - TYPE(SH_T), POINTER :: SH_DICTIONARY => NULL() - END TYPE - - !> Whitelist of public symbols - PUBLIC :: SH_DICTIONARY_IDX_E - - PUBLIC :: MAKE_SH_DICTIONARY - PUBLIC :: FREE_SH_DICTIONARY - PUBLIC :: EXTRACT_SH_DICTIONARY - -CONTAINS - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_SH_DICTIONARY' -PP_THREAD_SAFE FUNCTION MAKE_SH_DICTIONARY( WRAPPED_SH_DICTIONARY, & -& HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_SH_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(SH_T), POINTER :: SH_DICTIONARY - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SH_DICTIONARY_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CREATE_SH_DICTIONARY=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZE_SH_DICTIONARY=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INJECT_CHECKSUM=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_SH_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED ) - - !> Initialize the sh_dictionary - SH_DICTIONARY => NULL() - - !> Create the sh_dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_CREATE_SH_DICTIONARY) CREATE_SH_DICTIONARY( & -& WRAPPED_SH_DICTIONARY, SH_DICTIONARY, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(SH_DICTIONARY), ERRFLAG_SH_DICTIONARY_NOT_ASSOCIATED ) - - ! Initialize the sh_dictionary - ! PP_TRYCALL(ERRFLAG_INITIALIZE_SH_DICTIONARY) SH_DICTIONARY%INIT( HOOKS ) - - ! Inject checksum - PP_TRYCALL(ERRFLAG_INJECT_CHECKSUM) INJECT_CHECKSUM_SH_DICTIONARY( WRAPPED_SH_DICTIONARY, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SH_DICTIONARY already associated at function entry' ) - CASE (ERRFLAG_SH_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SH_DICTIONARY not associated after allocation' ) - CASE (ERRFLAG_UNABLE_TO_CREATE_SH_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract sh_dictionary' ) - CASE (ERRFLAG_INITIALIZE_SH_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to initialize sh_dictionary' ) - CASE (ERRFLAG_INJECT_CHECKSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_SH_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'FREE_SH_DICTIONARY' -PP_THREAD_SAFE FUNCTION FREE_SH_DICTIONARY( WRAPPED_SH_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_FREE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_SH_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(SH_T), POINTER :: SH_DICTIONARY - TYPE(SH_DICTIONARY_CONTAINER_T) :: SH_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: SH_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(SH_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_SH_DICTIONARY=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SH_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_SH_DICTIONARY=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE_SH_DICTIONARY=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_WRAPPER=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_SH_DICTIONARY=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_SH_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_SH_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. SH_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - SH_DICTIONARY_CONTAINER = TRANSFER( BUFFER, SH_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(SH_DICTIONARY_CONTAINER%SH_DICTIONARY), ERRFLAG_SH_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the sh_dictionary pointer - SH_DICTIONARY => SH_DICTIONARY_CONTAINER%SH_DICTIONARY - - ! Print the sh_dictionary to be freed - !! MIVAL: This is a debug print statement that should be enable to debug the c/fortran interoperability - !! PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_SH_DICTIONARY) SH_DICTIONARY%PRINT( 6_JPIB_K, 0_JPIB_K, HOOKS ) - ! Free the sh_dictionary - ! PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_SH_DICTIONARY) SH_DICTIONARY%FREE( HOOKS ) - - ! Deallocate the sh_dictionary - DEALLOCATE( SH_DICTIONARY_CONTAINER%SH_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_DEALLOCATE_SH_DICTIONARY ) - SH_DICTIONARY_CONTAINER%SH_DICTIONARY => NULL() - SH_DICTIONARY => NULL() - - ! Error handling - BUFFER = 0_C_INT8_T - - ! Free the wrapper - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_WRAPPER) F_C_FREE_WRAPPER( & -& WRAPPER, HOOKS ) - WRAPPER => NULL() - BUFFER => NULL() - - ! Reset the c pointer - WRAPPED_SH_DICTIONARY = C_NULL_PTR - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_SH_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract sh_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_SH_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SH_DICTIONARY not associated' ) - CASE (ERRFLAG_UNABLE_TO_FREE_SH_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free sh_dictionary' ) - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE_SH_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to deallocate sh_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_FREE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free wrapper' ) - CASE (ERRFLAG_UNABLE_TO_PRINT_SH_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to print sh_dictionary' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION FREE_SH_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CREATE_SH_DICTIONARY' -PP_THREAD_SAFE FUNCTION CREATE_SH_DICTIONARY( WRAPPED_SH_DICTIONARY, SH_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_SH_DICTIONARY - TYPE(SH_T), POINTER, INTENT(INOUT) :: SH_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(SH_DICTIONARY_CONTAINER_T) :: SH_DICTIONARY_CONTAINER - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: SH_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(SH_DICTIONARY_CONTAINER) / 8_JPIB_K - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SH_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_SH_DICTIONARY=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_SH_DICTIONARY), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(SH_DICTIONARY), ERRFLAG_SH_DICTIONARY_ALREADY_ASSOCIATED) - - ! Allocate the sh_dictionary - ALLOCATE( SH_DICTIONARY_CONTAINER%SH_DICTIONARY, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_ALLOCATE_SH_DICTIONARY ) - - ! Allocate the wrapper - WRAPPER => NULL() - BUFFER => NULL() - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) F_C_ALLOCATE_WRAPPER( & -& WRAPPER, BUFFER, SH_DICTIONARY_IDX_E, SH_DICTIONARY_CONTAINER_BYTE_SIZE, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - - ! Wrap the sh_dictionary in order to be able to expose it to c - BUFFER = TRANSFER(SH_DICTIONARY_CONTAINER, BUFFER, SH_DICTIONARY_CONTAINER_BYTE_SIZE ) - - ! Set the return arguments - SH_DICTIONARY => SH_DICTIONARY_CONTAINER%SH_DICTIONARY - WRAPPED_SH_DICTIONARY = C_LOC(WRAPPER) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper already associated' ) - CASE (ERRFLAG_SH_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SH_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_SH_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate sh_dictionary' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate wrapper' ) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated after allocation' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated after allocation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CREATE_SH_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'INJECT_CHECKSUM_SH_DICTIONARY' -PP_THREAD_SAFE FUNCTION INJECT_CHECKSUM_SH_DICTIONARY( WRAPPED_SH_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_INJECT_CHECKSUM_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_SH_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_SH_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_SH_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - PP_TRYCALL(ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) F_C_INJECT_CHECKSUM_WRAPPER( WRAPPER, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION INJECT_CHECKSUM_SH_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'EXTRACT_SH_DICTIONARY' -PP_THREAD_SAFE FUNCTION EXTRACT_SH_DICTIONARY( WRAPPED_SH_DICTIONARY, SH_DICTIONARY, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_SH_DICTIONARY - TYPE(SH_T), POINTER, INTENT(INOUT) :: SH_DICTIONARY - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(SH_DICTIONARY_CONTAINER_T) :: SH_DICTIONARY_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: SH_DICTIONARY_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(SH_DICTIONARY_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SH_DICTIONARY_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SH_DICTIONARY_NOT_ASSOCIATED=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_SH_DICTIONARY), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(SH_DICTIONARY), ERRFLAG_SH_DICTIONARY_ALREADY_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_SH_DICTIONARY, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. SH_DICTIONARY_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - SH_DICTIONARY_CONTAINER = TRANSFER( BUFFER, SH_DICTIONARY_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(SH_DICTIONARY_CONTAINER%SH_DICTIONARY), ERRFLAG_SH_DICTIONARY_NOT_ASSOCIATED ) - - ! Associate the sh_dictionary pointer - SH_DICTIONARY => SH_DICTIONARY_CONTAINER%SH_DICTIONARY - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_SH_DICTIONARY_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SH_DICTIONARY already associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_SH_DICTIONARY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SH_DICTIONARY not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION EXTRACT_SH_DICTIONARY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE SH_DICTIONARY_WRAPPER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/encoders/CMakeLists.txt b/src/multiom/encoders/api/encoders/CMakeLists.txt deleted file mode 100644 index f0bbb0bb5..000000000 --- a/src/multiom/encoders/api/encoders/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ -set(MULTIOM_API_ENCODERS_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + API_ENCODERS sources: ${MULTIOM_API_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -set( MULTIOM_API_ENCODERS_MAIN_SOURCES - ${MULTIOM_API_ENCODERS_DIR}/raw_encoders_api_mod.F90 - ${MULTIOM_API_ENCODERS_DIR}/raw_encoder_wrapper_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_API_ENCODERS_SOURCES - ${MULTIOM_API_ENCODERS_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in API_ENCODERS directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_API_ENCODERS_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/api/encoders/raw_encoder_wrapper_mod.F90 b/src/multiom/encoders/api/encoders/raw_encoder_wrapper_mod.F90 deleted file mode 100644 index c217757c6..000000000 --- a/src/multiom/encoders/api/encoders/raw_encoder_wrapper_mod.F90 +++ /dev/null @@ -1,1314 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'raw_encoder_wrapper_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'RAW_ENCODER_WRAPPER_MOD' -MODULE RAW_ENCODER_WRAPPER_MOD - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - - ! Symbols imported from other modules within the project. - USE :: MULTIOM_RAW_ENCODER_MOD, ONLY: MULTIOM_RAW_ENCODER_T - -IMPLICIT NONE - - !> Default module visibnility - PRIVATE - - !> Encoder index used used to identify the encoder wrapper - INTEGER(KIND=JPIB_K), PARAMETER :: RAW_ENCODER_IDX_E = 1_JPIB_K - CHARACTER(LEN=*), PARAMETER :: RAW_ENCODER_NAME_E = 'raw-encoder' - - !> Class used as a wrapper for the encoder - TYPE :: RAW_ENCODER_CONTAINER_T - TYPE(MULTIOM_RAW_ENCODER_T), POINTER :: ENCODER => NULL() - END TYPE - - !> Whitelist of public symbols - PUBLIC :: RAW_ENCODER_IDX_E - PUBLIC :: RAW_ENCODER_NAME_E - PUBLIC :: CREATE_RAW_ENCODER - PUBLIC :: INIT_RAW_ENCODER - PUBLIC :: EXTRACT_RAW_ENCODER - PUBLIC :: FREE_RAW_ENCODER - PUBLIC :: ENCODE_PREPARE_RAW_ENCODER - PUBLIC :: ENCODE_ALLOCATE_RAW_ENCODER - PUBLIC :: ENCODE_PRESET_RAW_ENCODER - PUBLIC :: ENCODE_RUNTIME_RAW_ENCODER - -CONTAINS - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'INIT_RAW_ENCODER' -PP_THREAD_SAFE FUNCTION INIT_RAW_ENCODER( WRAPPED_ENCODER, ENCODER_CFG, ENCODER_OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - USE :: MULTIOM_RAW_ENCODER_MOD, ONLY: MULTIOM_RAW_ENCODER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_ENCODER - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: ENCODER_CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: ENCODER_OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(MULTIOM_RAW_ENCODER_T), POINTER :: RAW_ENCODER - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CREATE_ENCODER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZE_ENCODER=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INJECT_CHECKSUM=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_ENCODER), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED ) - - !> Initialize the encoder - RAW_ENCODER => NULL() - - !> Create the encoder - PP_TRYCALL(ERRFLAG_UNABLE_TO_CREATE_ENCODER) CREATE_RAW_ENCODER( & -& WRAPPED_ENCODER, RAW_ENCODER, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(RAW_ENCODER), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - - !> Initialize the encoder - PP_TRYCALL(ERRFLAG_INITIALIZE_ENCODER) RAW_ENCODER%INIT(& -& ENCODER_CFG, ENCODER_OPT, HOOKS ) - - ! Inject checksum - PP_TRYCALL(ERRFLAG_INJECT_CHECKSUM) INJECT_CHECKSUM_RAW_ENCODER( WRAPPED_ENCODER, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder already associated at function entry' ) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder not associated after allocation' ) - CASE (ERRFLAG_UNABLE_TO_CREATE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract encoder' ) - CASE (ERRFLAG_INITIALIZE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to initialize encoder' ) - CASE (ERRFLAG_INJECT_CHECKSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION INIT_RAW_ENCODER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'ENCODE_PREPARE_RAW_ENCODER' -PP_THREAD_SAFE FUNCTION ENCODE_PREPARE_RAW_ENCODER( WRAPPED_ENCODER, & -& F_MARS_DICT, F_PAR_DICT, F_GEO_DICT, C_GRIB_SAMPLE_P, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: MULTIOM_RAW_ENCODER_MOD, ONLY: MULTIOM_RAW_ENCODER_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_ENCODER - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: F_MARS_DICT - TYPE(PARAMETRIZATION_T), INTENT(INOUT) :: F_PAR_DICT - CLASS(REPRES_A), POINTER, INTENT(IN) :: F_GEO_DICT - TYPE(C_PTR), INTENT(IN) :: C_GRIB_SAMPLE_P - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(MULTIOM_RAW_ENCODER_T), POINTER :: RAW_ENCODER - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_ENCODER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_THE_ENCODER=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Extract the encoder - RAW_ENCODER => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_ENCODER) EXTRACT_RAW_ENCODER( WRAPPED_ENCODER, RAW_ENCODER, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(RAW_ENCODER), ERRFLAG_EXTRACT_ENCODER ) - - ! Call the encoder - F_PAR_DICT%GEOMETRY%REPRES => F_GEO_DICT - F_PAR_DICT%GEOMETRY%TO_BE_DEALLOCATED = .FALSE. - PP_TRYCALL(ERRFLAG_CALL_THE_ENCODER) RAW_ENCODER%PREPARE( & -& F_MARS_DICT, F_PAR_DICT, F_GEO_DICT, C_GRIB_SAMPLE_P, HOOKS ) - F_PAR_DICT%GEOMETRY%REPRES => NULL() - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_EXTRACT_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract encoder' ) - CASE (ERRFLAG_CALL_THE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to call the encoder' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION ENCODE_PREPARE_RAW_ENCODER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'ENCODE_ALLOCATE_RAW_ENCODER' -PP_THREAD_SAFE FUNCTION ENCODE_ALLOCATE_RAW_ENCODER( WRAPPED_ENCODER, & -& F_MARS_DICT, F_PAR_DICT, F_GEO_DICT, C_GRIB_SAMPLE_P, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: MULTIOM_RAW_ENCODER_MOD, ONLY: MULTIOM_RAW_ENCODER_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_ENCODER - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: F_MARS_DICT - TYPE(PARAMETRIZATION_T), INTENT(INOUT) :: F_PAR_DICT - CLASS(REPRES_A), POINTER, INTENT(IN) :: F_GEO_DICT - TYPE(C_PTR), INTENT(IN) :: C_GRIB_SAMPLE_P - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(MULTIOM_RAW_ENCODER_T), POINTER :: RAW_ENCODER - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_ENCODER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_THE_ENCODER=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Extract the encoder - RAW_ENCODER => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_ENCODER) EXTRACT_RAW_ENCODER( WRAPPED_ENCODER, RAW_ENCODER, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(RAW_ENCODER), ERRFLAG_EXTRACT_ENCODER ) - - ! Call the encoder - F_PAR_DICT%GEOMETRY%REPRES => F_GEO_DICT - F_PAR_DICT%GEOMETRY%TO_BE_DEALLOCATED = .FALSE. - PP_TRYCALL(ERRFLAG_CALL_THE_ENCODER) RAW_ENCODER%ALLOCATE( & -& F_MARS_DICT, F_PAR_DICT, F_GEO_DICT, C_GRIB_SAMPLE_P, HOOKS ) - F_PAR_DICT%GEOMETRY%REPRES => NULL() - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_EXTRACT_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract encoder' ) - CASE (ERRFLAG_CALL_THE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to call the encoder' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION ENCODE_ALLOCATE_RAW_ENCODER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'ENCODE_PRESET_RAW_ENCODER' -PP_THREAD_SAFE FUNCTION ENCODE_PRESET_RAW_ENCODER( WRAPPED_ENCODER, & -& F_MARS_DICT, F_PAR_DICT, F_GEO_DICT, C_GRIB_SAMPLE_P, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: MULTIOM_RAW_ENCODER_MOD, ONLY: MULTIOM_RAW_ENCODER_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_ENCODER - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: F_MARS_DICT - TYPE(PARAMETRIZATION_T), INTENT(INOUT) :: F_PAR_DICT - CLASS(REPRES_A), POINTER, INTENT(IN) :: F_GEO_DICT - TYPE(C_PTR), INTENT(IN) :: C_GRIB_SAMPLE_P - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(MULTIOM_RAW_ENCODER_T), POINTER :: RAW_ENCODER - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_ENCODER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_THE_ENCODER=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Extract the encoder - RAW_ENCODER => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_ENCODER) EXTRACT_RAW_ENCODER( WRAPPED_ENCODER, RAW_ENCODER, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(RAW_ENCODER), ERRFLAG_EXTRACT_ENCODER ) - - ! Call the encoder - F_PAR_DICT%GEOMETRY%REPRES => F_GEO_DICT - F_PAR_DICT%GEOMETRY%TO_BE_DEALLOCATED = .FALSE. - PP_TRYCALL(ERRFLAG_CALL_THE_ENCODER) RAW_ENCODER%PRESET( & -& F_MARS_DICT, F_PAR_DICT, F_GEO_DICT, C_GRIB_SAMPLE_P, HOOKS ) - F_PAR_DICT%GEOMETRY%REPRES => NULL() - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_EXTRACT_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract encoder' ) - CASE (ERRFLAG_CALL_THE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to call the encoder' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION ENCODE_PRESET_RAW_ENCODER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'ENCODE_RUNTIME_RAW_ENCODER' -PP_THREAD_SAFE FUNCTION ENCODE_RUNTIME_RAW_ENCODER( WRAPPED_ENCODER, & -& F_MARS_DICT, F_PAR_DICT, F_GEO_DICT, C_GRIB_SAMPLE_P, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: MULTIOM_RAW_ENCODER_MOD, ONLY: MULTIOM_RAW_ENCODER_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_ENCODER - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: F_MARS_DICT - TYPE(PARAMETRIZATION_T), INTENT(INOUT) :: F_PAR_DICT - CLASS(REPRES_A), POINTER, INTENT(IN) :: F_GEO_DICT - TYPE(C_PTR), INTENT(IN) :: C_GRIB_SAMPLE_P - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(MULTIOM_RAW_ENCODER_T), POINTER :: RAW_ENCODER - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_ENCODER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_THE_ENCODER=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Extract the encoder - RAW_ENCODER => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_ENCODER) EXTRACT_RAW_ENCODER( WRAPPED_ENCODER, RAW_ENCODER, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(RAW_ENCODER), ERRFLAG_EXTRACT_ENCODER ) - - ! Call the encoder - F_PAR_DICT%GEOMETRY%REPRES => F_GEO_DICT - F_PAR_DICT%GEOMETRY%TO_BE_DEALLOCATED = .FALSE. - PP_TRYCALL(ERRFLAG_CALL_THE_ENCODER) RAW_ENCODER%RUNTIME( & -& F_MARS_DICT, F_PAR_DICT, F_GEO_DICT, C_GRIB_SAMPLE_P, HOOKS ) - F_PAR_DICT%GEOMETRY%REPRES => NULL() - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HA - BLOCK - - ! Error handling variables - CHARACTER(LEN=4096) :: GRIB_ERROR - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_EXTRACT_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract encoder' ) - CASE (ERRFLAG_CALL_THE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to call the encoder' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION ENCODE_RUNTIME_RAW_ENCODER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'FREE_RAW_ENCODER' -PP_THREAD_SAFE FUNCTION FREE_RAW_ENCODER( WRAPPED_ENCODER, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: MULTIOM_RAW_ENCODER_MOD, ONLY: MULTIOM_RAW_ENCODER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_FREE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_ENCODER - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(MULTIOM_RAW_ENCODER_T), POINTER :: ENCODER - TYPE(RAW_ENCODER_CONTAINER_T) :: ENCODER_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: RAW_ENCODER_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(ENCODER_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_ENCODER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_ENCODER=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE_ENCODER=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_FREE_WRAPPER=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_ENCODER=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_ENCODER), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_ENCODER, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. RAW_ENCODER_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - ENCODER_CONTAINER = TRANSFER( BUFFER, ENCODER_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(ENCODER_CONTAINER%ENCODER), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - - ! Associate the encoder pointer - ENCODER => ENCODER_CONTAINER%ENCODER - - ! Print the encoder to be freed - !! MIVAL: This is a debug print statement that should be enable to debug the c/fortran interoperability - !! PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_ENCODER) ENCODER%PRINT( 6_JPIB_K, 0_JPIB_K, HOOKS ) - ! Free the encoder - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_ENCODER) ENCODER%FREE( HOOKS ) - - ! Deallocate the encoder - DEALLOCATE( ENCODER_CONTAINER%ENCODER, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_DEALLOCATE_ENCODER ) - ENCODER_CONTAINER%ENCODER => NULL() - ENCODER => NULL() - - ! Error handling - BUFFER = 0_C_INT8_T - - ! Free the wrapper - PP_TRYCALL(ERRFLAG_UNABLE_TO_FREE_WRAPPER) F_C_FREE_WRAPPER( & -& WRAPPER, HOOKS ) - WRAPPER => NULL() - BUFFER => NULL() - - ! Reset the c pointer - WRAPPED_ENCODER = C_NULL_PTR - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point on success - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract encoder' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder not associated' ) - CASE (ERRFLAG_UNABLE_TO_FREE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free encoder' ) - CASE (ERRFLAG_UNABLE_TO_DEALLOCATE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to deallocate encoder' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_FREE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free wrapper' ) - CASE (ERRFLAG_UNABLE_TO_PRINT_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to print encoder' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION FREE_RAW_ENCODER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CREATE_RAW_ENCODER' -PP_THREAD_SAFE FUNCTION CREATE_RAW_ENCODER( WRAPPED_ENCODER, ENCODER, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: MULTIOM_RAW_ENCODER_MOD, ONLY: MULTIOM_RAW_ENCODER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_ALLOCATE_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_ENCODER - TYPE(MULTIOM_RAW_ENCODER_T), POINTER, INTENT(INOUT) :: ENCODER - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(RAW_ENCODER_CONTAINER_T) :: ENCODER_CONTAINER - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - INTEGER(KIND=JPIB_K) :: ALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: RAW_ENCODER_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(ENCODER_CONTAINER) / 8_JPIB_K - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_ENCODER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(WRAPPED_ENCODER), ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(ENCODER), ERRFLAG_ENCODER_ALREADY_ASSOCIATED) - - ! Allocate the encoder - ALLOCATE( ENCODER_CONTAINER%ENCODER, STAT=ALLOC_STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_ALLOCATE_ENCODER ) - - ! Allocate the wrapper - WRAPPER => NULL() - BUFFER => NULL() - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) F_C_ALLOCATE_WRAPPER( & -& WRAPPER, BUFFER, RAW_ENCODER_IDX_E, RAW_ENCODER_CONTAINER_BYTE_SIZE, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - - ! Wrap the encoder in order to be able to expose it to c - BUFFER = TRANSFER(ENCODER_CONTAINER, BUFFER, RAW_ENCODER_CONTAINER_BYTE_SIZE ) - - ! Set the return arguments - ENCODER => ENCODER_CONTAINER%ENCODER - WRAPPED_ENCODER = C_LOC(WRAPPER) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper already associated' ) - CASE (ERRFLAG_ENCODER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder already associated' ) - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate encoder' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=ALLOC_STAT ) - END IF - CASE (ERRFLAG_UNABLE_TO_ALLOCATE_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate wrapper' ) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated after allocation' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED_AFTER_ALLOCATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated after allocation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CREATE_RAW_ENCODER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'INJECT_CHECKSUM_RAW_ENCODER' -PP_THREAD_SAFE FUNCTION INJECT_CHECKSUM_RAW_ENCODER( WRAPPED_ENCODER, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_INJECT_CHECKSUM_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(INOUT) :: WRAPPED_ENCODER - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_ENCODER), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_ENCODER, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - PP_TRYCALL(ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) F_C_INJECT_CHECKSUM_WRAPPER( WRAPPER, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_INJECT_CHECKOSUM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to inject checksum' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION INJECT_CHECKSUM_RAW_ENCODER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'EXTRACT_RAW_ENCODER' -PP_THREAD_SAFE FUNCTION EXTRACT_RAW_ENCODER( WRAPPED_ENCODER, ENCODER, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT8_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: MULTIOM_RAW_ENCODER_MOD, ONLY: MULTIOM_RAW_ENCODER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_WRAPPER_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_EXTRACT_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), INTENT(IN) :: WRAPPED_ENCODER - TYPE(MULTIOM_RAW_ENCODER_T), POINTER, INTENT(INOUT) :: ENCODER - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - TYPE(F_C_WRAPPER_T), POINTER, DIMENSION(:) :: WRAPPER - INTEGER(KIND=C_INT8_T), POINTER, DIMENSION(:) :: BUFFER - TYPE(RAW_ENCODER_CONTAINER_T) :: ENCODER_CONTAINER - INTEGER(KIND=JPIB_K) :: DIM - - !> Local prameters - INTEGER(KIND=JPIB_K), PARAMETER :: RAW_ENCODER_CONTAINER_BYTE_SIZE = & -& STORAGE_SIZE(ENCODER_CONTAINER) / 8_JPIB_K - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRAPPER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_BUFFER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BUFFER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_BUFFER_SIZE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED=7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(WRAPPED_ENCODER), ERRFLAG_WRAPPER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(ENCODER), ERRFLAG_ENCODER_ALREADY_ASSOCIATED ) - - ! Extract the wrapper - WRAPPER => NULL() - CALL C_F_POINTER( WRAPPED_ENCODER, WRAPPER, [1] ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(WRAPPER), ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER ) - - ! Extract the buffer - BUFFER => NULL() - DIM = 0_JPIB_K - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) F_C_EXTRACT_WRAPPER( & -& WRAPPER, BUFFER, DIM, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(BUFFER), ERRFLAG_BUFFER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( DIM .NE. RAW_ENCODER_CONTAINER_BYTE_SIZE, ERRFLAG_WRONG_BUFFER_SIZE ) - - ! Get the Container - ENCODER_CONTAINER = TRANSFER( BUFFER, ENCODER_CONTAINER ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(ENCODER_CONTAINER%ENCODER), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - - ! Associate the encoder pointer - ENCODER => ENCODER_CONTAINER%ENCODER - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRAPPER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrapper not associated' ) - CASE (ERRFLAG_ENCODER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder already associated' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_WRAPPER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract wrapper' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_BUFFER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract buffer' ) - CASE (ERRFLAG_BUFFER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Buffer not associated' ) - CASE (ERRFLAG_WRONG_BUFFER_SIZE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong buffer size' ) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION EXTRACT_RAW_ENCODER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE RAW_ENCODER_WRAPPER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/api/encoders/raw_encoders_api_mod.F90 b/src/multiom/encoders/api/encoders/raw_encoders_api_mod.F90 deleted file mode 100644 index b40463798..000000000 --- a/src/multiom/encoders/api/encoders/raw_encoders_api_mod.F90 +++ /dev/null @@ -1,1409 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'raw_encoders_api_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'RAW_ENCODERS_API_MOD' -MODULE RAW_ENCODERS_API_MOD - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -! Whitelist of public symbols (encoder management) -PUBLIC :: MULTIO_GRIB2_RAW_ENCODER_OPEN -PUBLIC :: MULTIO_GRIB2_RAW_ENCODER_CLOSE -PUBLIC :: MULTIO_GRIB2_RAW_ENCODER_PREPARE -PUBLIC :: MULTIO_GRIB2_RAW_ENCODER_ALLOCATE -PUBLIC :: MULTIO_GRIB2_RAW_ENCODER_PRESET -PUBLIC :: MULTIO_GRIB2_RAW_ENCODER_RUNTIME - -CONTAINS - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_RAW_ENCODER_OPEN' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_RAW_ENCODER_OPEN( & -& C_OPTIONS_P, C_ENCODER_CFG_P, C_ENCODER_MTG2_PP) & - BIND(C,NAME='multio_grib2_raw_encoder_open') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LONG_LONG - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_SIZE_T - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - USE :: RAW_ENCODER_WRAPPER_MOD, ONLY: INIT_RAW_ENCODER - USE :: OPTIONS_DICTIONARY_UTILS_MOD, ONLY: API_OPTIONS_T - USE :: API_GENERAL_UTILS_MOD, ONLY: COPY_CPTR_TO_F_STRING - USE :: API_GENERAL_UTILS_MOD, ONLY: DEREFERENCE_DOUBLE_C_POINTER - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_NEW_CONFIGURATION_FROM_CPTR - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_OPT_DICTIONARY - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: OPT_DICTIONARY_IDX_E - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_OPTIONS_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_ENCODER_CFG_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_ENCODER_MTG2_PP - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(YAML_CONFIGURATION_T) :: F_ENCODER_CFG - TYPE(C_PTR), DIMENSION(:), POINTER :: C_ENCODER_MTG2_P - INTEGER(KIND=C_LONG_LONG), POINTER, DIMENSION(:) :: F_DICT - TYPE(API_OPTIONS_T), POINTER :: F_API_OPTIONS - CHARACTER(LEN=64) :: F_ENCODER_TYPE_LOWERCASE - TYPE(GRIB_ENCODER_OPTIONS_T) :: F_ENCODER_OPTIONS - LOGICAL :: HAS_OPTIONS - TYPE(HOOKS_T) :: HOOKS - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEREFERENCE_DOUBLE_POINTER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_ALREADY_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_OPTIONS_INFO=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_ENCODER_TYPE=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CREATE_FCKIT_CONFIGURATION=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_ENCODER=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_DICTIONARY=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Get the encoder pointer - C_ENCODER_MTG2_P => NULL() - PP_TRYCALL(ERRFLAG_DEREFERENCE_DOUBLE_POINTER) DEREFERENCE_DOUBLE_C_POINTER( & -& C_ENCODER_MTG2_PP, 1_JPIB_K, C_ENCODER_MTG2_P, HOOKS ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( C_ASSOCIATED(C_ENCODER_MTG2_P(1)), ERRFLAG_ENCODER_ALREADY_ASSOCIATED ) - - !> Check if the options are present - HAS_OPTIONS = C_ASSOCIATED( C_OPTIONS_P ) - - IF ( HAS_OPTIONS ) THEN - - !> Extract info from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_OPTIONS_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - !> Get th fortran handle from the c handle - SELECT CASE (OBJ_ID) - - CASE ( OPT_DICTIONARY_IDX_E ) - BLOCK - TYPE(API_OPTIONS_T), POINTER :: OPT_DICT - OPT_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_OPT_DICTIONARY( C_OPTIONS_P, OPT_DICT, HOOKS ) - F_ENCODER_OPTIONS%PRINT_WHOLE_ERROR_STACK = OPT_DICT%PRINT_WHOLE_ERROR_STACK - F_ENCODER_OPTIONS%PRINT_DICTIONARIES = OPT_DICT%PRINT_DICTIONARIES - OPT_DICT => NULL() - END BLOCK - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_WRONG_DICTIONARY ) - - END SELECT - - ENDIF - - !> Convert encoder configuration to an fckit configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_CREATE_FCKIT_CONFIGURATION) YAML_NEW_CONFIGURATION_FROM_CPTR( & -& C_ENCODER_CFG_P, F_ENCODER_CFG, HOOKS ) - -!$omp critical(API_ENCODER_OPEN) - - !> Create the encoder - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_ENCODER) INIT_RAW_ENCODER( & -& C_ENCODER_MTG2_P(1), F_ENCODER_CFG, F_ENCODER_OPTIONS, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_ENCODER_MTG2_P(1)), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - -!$omp end critical(API_ENCODER_OPEN) - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_DEREFERENCE_DOUBLE_POINTER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to dereference double pointer' ) - CASE (ERRFLAG_ENCODER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder already associated' ) - CASE (ERRFLAG_UNABLE_TO_GET_OPTIONS_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get options info' ) - CASE (ERRFLAG_UNABLE_TO_READ_ENCODER_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to read encoder type' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract encoder' ) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder not associated' ) - CASE (ERRFLAG_EXTRACT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract options dictionary' ) - CASE (ERRFLAG_WRONG_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong dictionary type' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get info' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. - ! It opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'"', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_RAW_ENCODER_OPEN -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_RAW_ENCODER_CLOSE' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_RAW_ENCODER_CLOSE( C_ENCODER_MTG2 ) & - BIND(C,NAME='multio_grib2_raw_encoder_close') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_F_POINTER - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_NULL_PTR - - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: RAW_ENCODER_WRAPPER_MOD, ONLY: RAW_ENCODER_IDX_E - USE :: RAW_ENCODER_WRAPPER_MOD, ONLY: FREE_RAW_ENCODER - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - USE :: API_GENERAL_UTILS_MOD, ONLY: DEREFERENCE_DOUBLE_C_POINTER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_ENCODER_MTG2 - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(C_PTR), DIMENSION(:), POINTER :: TMP - TYPE(HOOKS_T) :: HOOKS - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEREFERENCE_DOUBLE_POINTER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_FREE_ENCODER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_ENCODER_ID=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - -!$omp critical(API_ENCODER_MAP_REMOVE) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_ENCODER_MTG2), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - - !> Get the encoder pointer - TMP => NULL() - PP_TRYCALL(ERRFLAG_DEREFERENCE_DOUBLE_POINTER) DEREFERENCE_DOUBLE_C_POINTER( & -& C_ENCODER_MTG2, 1_JPIB_K, TMP, HOOKS ) - - !> Extract info from the encoder - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( TMP(1), & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - !> Get th fortran handle from the c handle - SELECT CASE ( OBJ_ID ) - CASE (RAW_ENCODER_IDX_E) - - !> Free the encoder - PP_TRYCALL(ERRFLAG_UNABLE_FREE_ENCODER) FREE_RAW_ENCODER( TMP(1), HOOKS ) - TMP(1) = C_NULL_PTR - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_INVALID_ENCODER_ID ) - - END SELECT - -!$omp end critical(API_ENCODER_MAP_REMOVE) - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - CHARACTER(LEN=32) :: CTMP - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder not associated' ) - CASE (ERRFLAG_DEREFERENCE_DOUBLE_POINTER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to dereference double pointer' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get info' ) - CASE (ERRFLAG_UNABLE_FREE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to free encoder' ) - CASE (ERRFLAG_INVALID_ENCODER_ID) - CTMP = REPEAT(' ', 32) - WRITE(CTMP,*) OBJ_ID - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid encoder ID: '//TRIM(ADJUSTL(CTMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is importent when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_RAW_ENCODER_CLOSE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_RAW_ENCODER_PREPARE' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_RAW_ENCODER_PREPARE( C_ENCODER_MTG2_P, & -& C_MARS_DICT_P, C_PAR_DICT_P, C_GEO_DICT_P, C_GRIB_SAMPLE_P ) & - BIND(C,NAME='multio_grib2_raw_encoder_prepare') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - - ! Cached encoder wrapper - USE :: RAW_ENCODER_WRAPPER_MOD, ONLY: RAW_ENCODER_IDX_E - USE :: RAW_ENCODER_WRAPPER_MOD, ONLY: ENCODE_PREPARE_RAW_ENCODER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_ENCODER_MTG2_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_MARS_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_PAR_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_GEO_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_GRIB_SAMPLE_P - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - - TYPE(FORTRAN_MESSAGE_T), POINTER :: F_MARS_DICT_P - TYPE(PARAMETRIZATION_T), POINTER :: F_PAR_DICT_P - CLASS(REPRES_A), POINTER :: F_GEO_DICT_P - - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SAMPLE_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARIES=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ENCODE=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_ENCODER_ID=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_ENCODER_MTG2_P), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_MARS_DICT_P), ERRFLAG_MARS_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_PAR_DICT_P), ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_GEO_DICT_P), ERRFLAG_GEOMETRY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_GRIB_SAMPLE_P), ERRFLAG_SAMPLE_NOT_ASSOCIATED ) - - !> Initialization of the dictionaries - F_MARS_DICT_P => NULL() - F_PAR_DICT_P => NULL() - F_GEO_DICT_P => NULL() - - ! Get the dictionaries - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARIES) EXTRACT_DICTIONARIES( & -& C_MARS_DICT_P, C_PAR_DICT_P, C_GEO_DICT_P, & -& F_MARS_DICT_P, F_PAR_DICT_P, F_GEO_DICT_P, HOOKS ) - - !> Extract info from the encoder - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_ENCODER_MTG2_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - !> Get th fortran handle from the c handle - SELECT CASE ( OBJ_ID ) - CASE (RAW_ENCODER_IDX_E) - - PP_TRYCALL(ERRFLAG_UNABLE_TO_ENCODE) ENCODE_PREPARE_RAW_ENCODER( & -& C_ENCODER_MTG2_P, F_MARS_DICT_P, F_PAR_DICT_P, F_GEO_DICT_P, & -& C_GRIB_SAMPLE_P, HOOKS ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_INVALID_ENCODER_ID ) - - END SELECT - - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder not associated' ) - CASE (ERRFLAG_MARS_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'MARS dictionary not associated' ) - CASE (ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Parametrization dictionary not associated' ) - CASE (ERRFLAG_GEOMETRY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Geometry dictionary not associated' ) - CASE (ERRFLAG_SAMPLE_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Grib sample not associated' ) - CASE (ERRFLAG_EXTRACT_DICTIONARIES) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract dictionaries' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get info' ) - CASE (ERRFLAG_UNABLE_TO_ENCODE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to encode' ) - CASE (ERRFLAG_INVALID_ENCODER_ID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid encoder ID' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_RAW_ENCODER_PREPARE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_RAW_ENCODER_ALLOCATE' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_RAW_ENCODER_ALLOCATE( C_ENCODER_MTG2_P, & -& C_MARS_DICT_P, C_PAR_DICT_P, C_GEO_DICT_P, C_GRIB_SAMPLE_P ) & - BIND(C,NAME='multio_grib2_raw_encoder_allocate') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - - ! Cached encoder wrapper - USE :: RAW_ENCODER_WRAPPER_MOD, ONLY: RAW_ENCODER_IDX_E - USE :: RAW_ENCODER_WRAPPER_MOD, ONLY: ENCODE_ALLOCATE_RAW_ENCODER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_ENCODER_MTG2_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_MARS_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_PAR_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_GEO_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_GRIB_SAMPLE_P - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - - TYPE(FORTRAN_MESSAGE_T), POINTER :: F_MARS_DICT_P - TYPE(PARAMETRIZATION_T), POINTER :: F_PAR_DICT_P - CLASS(REPRES_A), POINTER :: F_GEO_DICT_P - - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SAMPLE_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARIES=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ENCODE=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_ENCODER_ID=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_ENCODER_MTG2_P), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_MARS_DICT_P), ERRFLAG_MARS_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_PAR_DICT_P), ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_GEO_DICT_P), ERRFLAG_GEOMETRY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_GRIB_SAMPLE_P), ERRFLAG_SAMPLE_NOT_ASSOCIATED ) - - !> Initialization of the dictionaries - F_MARS_DICT_P => NULL() - F_PAR_DICT_P => NULL() - F_GEO_DICT_P => NULL() - - ! Get the dictionaries - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARIES) EXTRACT_DICTIONARIES( & -& C_MARS_DICT_P, C_PAR_DICT_P, C_GEO_DICT_P, & -& F_MARS_DICT_P, F_PAR_DICT_P, F_GEO_DICT_P, HOOKS ) - - !> Extract info from the encoder - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_ENCODER_MTG2_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - !> Get th fortran handle from the c handle - SELECT CASE ( OBJ_ID ) - CASE (RAW_ENCODER_IDX_E) - - PP_TRYCALL(ERRFLAG_UNABLE_TO_ENCODE) ENCODE_ALLOCATE_RAW_ENCODER( & -& C_ENCODER_MTG2_P, F_MARS_DICT_P, F_PAR_DICT_P, F_GEO_DICT_P, & -& C_GRIB_SAMPLE_P, HOOKS ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_INVALID_ENCODER_ID ) - - END SELECT - - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder not associated' ) - CASE (ERRFLAG_MARS_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'MARS dictionary not associated' ) - CASE (ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Parametrization dictionary not associated' ) - CASE (ERRFLAG_GEOMETRY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Geometry dictionary not associated' ) - CASE (ERRFLAG_SAMPLE_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Grib sample not associated' ) - CASE (ERRFLAG_EXTRACT_DICTIONARIES) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract dictionaries' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get info' ) - CASE (ERRFLAG_UNABLE_TO_ENCODE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to encode' ) - CASE (ERRFLAG_INVALID_ENCODER_ID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid encoder ID' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_RAW_ENCODER_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_RAW_ENCODER_PRESET' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_RAW_ENCODER_PRESET( C_ENCODER_MTG2_P, & -& C_MARS_DICT_P, C_PAR_DICT_P, C_GEO_DICT_P, C_GRIB_SAMPLE_P ) & - BIND(C,NAME='multio_grib2_raw_encoder_preset') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - - ! Cached encoder wrapper - USE :: RAW_ENCODER_WRAPPER_MOD, ONLY: RAW_ENCODER_IDX_E - USE :: RAW_ENCODER_WRAPPER_MOD, ONLY: ENCODE_PRESET_RAW_ENCODER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_ENCODER_MTG2_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_MARS_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_PAR_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_GEO_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_GRIB_SAMPLE_P - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - - TYPE(FORTRAN_MESSAGE_T), POINTER :: F_MARS_DICT_P - TYPE(PARAMETRIZATION_T), POINTER :: F_PAR_DICT_P - CLASS(REPRES_A), POINTER :: F_GEO_DICT_P - - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SAMPLE_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARIES=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ENCODE=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_ENCODER_ID=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_ENCODER_MTG2_P), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_MARS_DICT_P), ERRFLAG_MARS_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_PAR_DICT_P), ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_GEO_DICT_P), ERRFLAG_GEOMETRY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_GRIB_SAMPLE_P), ERRFLAG_SAMPLE_NOT_ASSOCIATED ) - - !> Initialization of the dictionaries - F_MARS_DICT_P => NULL() - F_PAR_DICT_P => NULL() - F_GEO_DICT_P => NULL() - - ! Get the dictionaries - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARIES) EXTRACT_DICTIONARIES( & -& C_MARS_DICT_P, C_PAR_DICT_P, C_GEO_DICT_P, & -& F_MARS_DICT_P, F_PAR_DICT_P, F_GEO_DICT_P, HOOKS ) - - !> Extract info from the encoder - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_ENCODER_MTG2_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - !> Get th fortran handle from the c handle - SELECT CASE ( OBJ_ID ) - CASE (RAW_ENCODER_IDX_E) - - PP_TRYCALL(ERRFLAG_UNABLE_TO_ENCODE) ENCODE_PRESET_RAW_ENCODER( & -& C_ENCODER_MTG2_P, F_MARS_DICT_P, F_PAR_DICT_P, F_GEO_DICT_P, & -& C_GRIB_SAMPLE_P, HOOKS ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_INVALID_ENCODER_ID ) - - END SELECT - - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder not associated' ) - CASE (ERRFLAG_MARS_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'MARS dictionary not associated' ) - CASE (ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Parametrization dictionary not associated' ) - CASE (ERRFLAG_GEOMETRY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Geometry dictionary not associated' ) - CASE (ERRFLAG_SAMPLE_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Grib sample not associated' ) - CASE (ERRFLAG_EXTRACT_DICTIONARIES) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract dictionaries' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get info' ) - CASE (ERRFLAG_UNABLE_TO_ENCODE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to encode' ) - CASE (ERRFLAG_INVALID_ENCODER_ID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid encoder ID' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_RAW_ENCODER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIO_GRIB2_RAW_ENCODER_RUNTIME' -PP_THREAD_SAFE FUNCTION MULTIO_GRIB2_RAW_ENCODER_RUNTIME( C_ENCODER_MTG2_P, & -& C_MARS_DICT_P, C_PAR_DICT_P, C_GEO_DICT_P, C_GRIB_SAMPLE_P ) & - BIND(C,NAME='multio_grib2_raw_encoder_runtime') RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: ERROR_UNIT - - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - - ! Cached encoder wrapper - USE :: RAW_ENCODER_WRAPPER_MOD, ONLY: RAW_ENCODER_IDX_E - USE :: RAW_ENCODER_WRAPPER_MOD, ONLY: ENCODE_RUNTIME_RAW_ENCODER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_ENCODER_MTG2_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_MARS_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_PAR_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_GEO_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_GRIB_SAMPLE_P - - !> Function result - INTEGER(KIND=C_INT) :: RET - - !> Local variables - TYPE(HOOKS_T) :: HOOKS - - TYPE(FORTRAN_MESSAGE_T), POINTER :: F_MARS_DICT_P - TYPE(PARAMETRIZATION_T), POINTER :: F_PAR_DICT_P - CLASS(REPRES_A), POINTER :: F_GEO_DICT_P - - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SAMPLE_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARIES=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ENCODE=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_ENCODER_ID=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization of the hooks - CALL HOOKS%DEBUG_HOOK_%INIT( ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_ENCODER_MTG2_P), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_MARS_DICT_P), ERRFLAG_MARS_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_PAR_DICT_P), ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_GEO_DICT_P), ERRFLAG_GEOMETRY_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_GRIB_SAMPLE_P), ERRFLAG_SAMPLE_NOT_ASSOCIATED ) - - !> Initialization of the dictionaries - F_MARS_DICT_P => NULL() - F_PAR_DICT_P => NULL() - F_GEO_DICT_P => NULL() - - ! Get the dictionaries - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARIES) EXTRACT_DICTIONARIES( & -& C_MARS_DICT_P, C_PAR_DICT_P, C_GEO_DICT_P, & -& F_MARS_DICT_P, F_PAR_DICT_P, F_GEO_DICT_P, HOOKS ) - - !> Extract info from the encoder - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_ENCODER_MTG2_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - - !> Get th fortran handle from the c handle - SELECT CASE ( OBJ_ID ) - CASE (RAW_ENCODER_IDX_E) - - PP_TRYCALL(ERRFLAG_UNABLE_TO_ENCODE) ENCODE_RUNTIME_RAW_ENCODER( & -& C_ENCODER_MTG2_P, F_MARS_DICT_P, F_PAR_DICT_P, F_GEO_DICT_P, & -& C_GRIB_SAMPLE_P, HOOKS ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_INVALID_ENCODER_ID ) - - END SELECT - - - !> Be sure we don't have any memory leaks - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder not associated' ) - CASE (ERRFLAG_MARS_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'MARS dictionary not associated' ) - CASE (ERRFLAG_PARAMETRIZATION_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Parametrization dictionary not associated' ) - CASE (ERRFLAG_GEOMETRY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Geometry dictionary not associated' ) - CASE (ERRFLAG_SAMPLE_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Grib sample not associated' ) - CASE (ERRFLAG_EXTRACT_DICTIONARIES) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract dictionaries' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get info' ) - CASE (ERRFLAG_UNABLE_TO_ENCODE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to encode' ) - CASE (ERRFLAG_INVALID_ENCODER_ID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Invalid encoder ID' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown error' ) - END SELECT - - ! Print the error stack - ! NOTE: This is important when c is calling this function. Is opens the error_unit - WRITE(ERROR_UNIT,*) ' PRINT ERROR STACK FROM: "'//__FILE__//'":', __LINE__ - CALL HOOKS%DEBUG_HOOK_%PRINT_ERROR_STACK( ERROR_UNIT ) - - ! Free the error stack - CALL HOOKS%DEBUG_HOOK_%FREE( ) - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - RETURN - -END FUNCTION MULTIO_GRIB2_RAW_ENCODER_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'EXTRACT_DICTIONARIES' -PP_THREAD_SAFE FUNCTION EXTRACT_DICTIONARIES( & -& C_MARS_DICT_P, C_PAR_DICT_P, C_GEO_DICT_P, & -& F_MARS_DICT_P, F_PAR_DICT_P, F_GEO_DICT_P, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_ASSOCIATED - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: API_F_C_WRAPPER_MOD, ONLY: F_C_GET_INFO_WRAPPER - - - ! Dictionary types - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - - ! Enumerators of the dictionaries - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: HEALPIX_DICTIONARY_IDX_E - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: REDUCED_GG_DICTIONARY_IDX_E - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_GG_DICTIONARY_IDX_E - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: REGULAR_LL_DICTIONARY_IDX_E - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: SH_DICTIONARY_IDX_E - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: OPT_DICTIONARY_IDX_E - - ! Extract Callbacks - USE :: MARS_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_MARS_DICTIONARY - USE :: PAR_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_PAR_DICTIONARY - USE :: HEALPIX_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_HEALPIX_DICTIONARY - USE :: REDUCED_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REDUCED_GG_DICTIONARY - USE :: REGULAR_GG_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_GG_DICTIONARY - USE :: REGULAR_LL_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_REGULAR_LL_DICTIONARY - USE :: SH_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_SH_DICTIONARY - USE :: OPT_DICTIONARY_WRAPPER_MOD, ONLY: EXTRACT_OPT_DICTIONARY - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - - -IMPLICIT NONE - - ! Dummy arguments - TYPE(C_PTR), VALUE, INTENT(IN) :: C_MARS_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_PAR_DICT_P - TYPE(C_PTR), VALUE, INTENT(IN) :: C_GEO_DICT_P - TYPE(FORTRAN_MESSAGE_T), POINTER, INTENT(OUT) :: F_MARS_DICT_P - TYPE(PARAMETRIZATION_T), POINTER, INTENT(OUT) :: F_PAR_DICT_P - CLASS(REPRES_A), POINTER, INTENT(OUT) :: F_GEO_DICT_P - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: OBJ_ID - INTEGER(KIND=JPIB_K) :: OBJ_SIZE - INTEGER(KIND=JPIB_K) :: BUF_SIZE - INTEGER(KIND=JPIB_K) :: HASH - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CMARS_DICT_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CPAR_DICT_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CGEO_DICT_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_INFO=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXTRACT_DICTIONARY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_DICTIONARY=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FMARS_DICT_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FPAR_DICT_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FGEO_DICT_NOT_ASSOCIATED=9_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Initialization of the output variables - F_MARS_DICT_P => NULL() - F_PAR_DICT_P => NULL() - F_GEO_DICT_P => NULL() - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_MARS_DICT_P), ERRFLAG_CMARS_DICT_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_PAR_DICT_P), ERRFLAG_CPAR_DICT_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.C_ASSOCIATED(C_GEO_DICT_P), ERRFLAG_CGEO_DICT_NOT_ASSOCIATED ) - - !> Extract mars from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_MARS_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_MARS_DICTIONARY( C_MARS_DICT_P, F_MARS_DICT_P, HOOKS ) - - !> Extract parametrization from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_PAR_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_PAR_DICTIONARY( C_PAR_DICT_P, F_PAR_DICT_P, HOOKS ) - - !> Extract geometry from the dictionary - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_INFO) F_C_GET_INFO_WRAPPER( C_GEO_DICT_P, & -& OBJ_ID, OBJ_SIZE, BUF_SIZE, HASH, HOOKS, VERIFY_CHECKSUM=.FALSE. ) - SELECT CASE ( OBJ_ID ) - CASE (HEALPIX_DICTIONARY_IDX_E) - BLOCK - TYPE(HEALPIX_T), POINTER :: HEALPIX_DICT - HEALPIX_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_HEALPIX_DICTIONARY( C_GEO_DICT_P, HEALPIX_DICT, HOOKS ) - F_GEO_DICT_P => HEALPIX_DICT - HEALPIX_DICT => NULL() - END BLOCK - CASE (REDUCED_GG_DICTIONARY_IDX_E) - BLOCK - TYPE(REDUCED_GG_T), POINTER :: REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REDUCED_GG_DICTIONARY( C_GEO_DICT_P, REDUCED_GG_DICT, HOOKS ) - F_GEO_DICT_P => REDUCED_GG_DICT - REDUCED_GG_DICT => NULL() - END BLOCK - CASE (REGULAR_GG_DICTIONARY_IDX_E) - BLOCK - TYPE(REGULAR_GG_T), POINTER :: REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_GG_DICTIONARY( C_GEO_DICT_P, REGULAR_GG_DICT, HOOKS ) - F_GEO_DICT_P => REGULAR_GG_DICT - REGULAR_GG_DICT => NULL() - END BLOCK - CASE (REGULAR_LL_DICTIONARY_IDX_E) - BLOCK - TYPE(REGULAR_LL_T), POINTER :: REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_REGULAR_LL_DICTIONARY( C_GEO_DICT_P, REGULAR_LL_DICT, HOOKS ) - F_GEO_DICT_P => REGULAR_LL_DICT - REGULAR_LL_DICT => NULL() - END BLOCK - CASE (SH_DICTIONARY_IDX_E) - BLOCK - TYPE(SH_T), POINTER :: SH_DICT - SH_DICT => NULL() - PP_TRYCALL(ERRFLAG_EXTRACT_DICTIONARY) EXTRACT_SH_DICTIONARY( C_GEO_DICT_P, SH_DICT, HOOKS ) - F_GEO_DICT_P => SH_DICT - SH_DICT => NULL() - END BLOCK - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_DICTIONARY ) - END SELECT - - !> Check output variables - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(F_MARS_DICT_P), ERRFLAG_FMARS_DICT_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(F_PAR_DICT_P), ERRFLAG_FPAR_DICT_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(F_GEO_DICT_P), ERRFLAG_FGEO_DICT_NOT_ASSOCIATED ) - - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! HAndle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_CMARS_DICT_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'C MARS dictionary not associated' ) - CASE (ERRFLAG_CPAR_DICT_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'C Parametrization dictionary not associated' ) - CASE (ERRFLAG_CGEO_DICT_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'C Geometry dictionary not associated' ) - CASE (ERRFLAG_UNABLE_TO_GET_INFO) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get info' ) - CASE (ERRFLAG_EXTRACT_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to extract dictionary' ) - CASE (ERRFLAG_UNKNOWN_DICTIONARY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dictionary type' ) - CASE (ERRFLAG_FMARS_DICT_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Fortran MARS dictionary not associated' ) - CASE (ERRFLAG_FPAR_DICT_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Fortran Parametrization dictionary not associated' ) - CASE (ERRFLAG_FGEO_DICT_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Fortran Geometry dictionary not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point on error - RETURN - -END FUNCTION EXTRACT_DICTIONARIES -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE RAW_ENCODERS_API_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/dictionaries/mars/fortran_message_mod.F90 b/src/multiom/encoders/dictionaries/mars/fortran_message_mod.F90 index 59734c9a3..03a6aed5b 100644 --- a/src/multiom/encoders/dictionaries/mars/fortran_message_mod.F90 +++ b/src/multiom/encoders/dictionaries/mars/fortran_message_mod.F90 @@ -149,7 +149,6 @@ PP_THREAD_SAFE FUNCTION FORTRAN_MESSAGE_INIT( THIS, HOOKS ) RESULT(RET) !> Symbols imported from other modules within the project. USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T ! Symbols imported by the preprocessor for debugging purposes PP_DEBUG_USE_VARS @@ -284,7 +283,6 @@ PP_THREAD_SAFE FUNCTION FORTRAN_MESSAGE_FREE( THIS, HOOKS ) RESULT(RET) !> Symbols imported from other modules within the project. USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T ! Symbols imported by the preprocessor for debugging purposes PP_DEBUG_USE_VARS @@ -418,7 +416,6 @@ PP_THREAD_SAFE FUNCTION FORTRAN_MESSAGE_PRINT( THIS, UNIT, HOOKS ) RESULT(RET) USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E USE :: ENUMERATORS_MOD, ONLY: ISTREAM2CSTREAM USE :: ENUMERATORS_MOD, ONLY: ITYPE2CTYPE @@ -831,7 +828,6 @@ PP_THREAD_SAFE FUNCTION FORTRAN_MESSAGE_TO_JSON( THIS, OUT_JSON, HOOKS ) RESULT( USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E USE :: ENUMERATORS_MOD, ONLY: ISTREAM2CSTREAM USE :: ENUMERATORS_MOD, ONLY: ITYPE2CTYPE @@ -1376,7 +1372,6 @@ PP_THREAD_SAFE FUNCTION FORTRAN_MESSAGE_TO_STRING( THIS, OUT_JSON, HOOKS, PREFIX USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E USE :: ENUMERATORS_MOD, ONLY: ISTREAM2CSTREAM USE :: ENUMERATORS_MOD, ONLY: ITYPE2CTYPE @@ -4350,7 +4345,6 @@ PP_THREAD_SAFE FUNCTION FORTRAN_MESSAGE_TO_YAML( THIS, UNIT, OFFSET, HOOKS ) RES USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E USE :: ENUMERATORS_MOD, ONLY: ISTREAM2CSTREAM USE :: ENUMERATORS_MOD, ONLY: ITYPE2CTYPE diff --git a/src/multiom/encoders/dictionaries/parametrization/parametrization_mod.F90 b/src/multiom/encoders/dictionaries/parametrization/parametrization_mod.F90 index 2369a72ba..fed79fb77 100644 --- a/src/multiom/encoders/dictionaries/parametrization/parametrization_mod.F90 +++ b/src/multiom/encoders/dictionaries/parametrization/parametrization_mod.F90 @@ -576,7 +576,6 @@ PP_THREAD_SAFE FUNCTION PARAMETRIZATION_PRINT( THIS, UNIT, HOOKS ) RESULT(RET) USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T USE :: PARAMETRIZATION_ENUMERATORS_MOD, ONLY: N_PARINTFLDS USE :: PARAMETRIZATION_ENUMERATORS_MOD, ONLY: IPARINTFLDS2CPARINTFLDS USE :: PARAMETRIZATION_ENUMERATORS_MOD, ONLY: N_PARSTRFLDS @@ -737,7 +736,6 @@ PP_THREAD_SAFE FUNCTION PARAMETRIZATION_TO_JSON( THIS, JSON, HOOKS ) RESULT(RET) USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T USE :: PARAMETRIZATION_ENUMERATORS_MOD, ONLY: N_PARINTFLDS USE :: PARAMETRIZATION_ENUMERATORS_MOD, ONLY: IPARINTFLDS2CPARINTFLDS USE :: PARAMETRIZATION_ENUMERATORS_MOD, ONLY: N_PARSTRFLDS @@ -1964,7 +1962,6 @@ PP_THREAD_SAFE FUNCTION PARAMETRIZATION_TO_YAML( THIS, UNIT, OFFSET, HOOKS ) RES USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T USE :: PARAMETRIZATION_ENUMERATORS_MOD, ONLY: N_PARINTFLDS USE :: PARAMETRIZATION_ENUMERATORS_MOD, ONLY: IPARINTFLDS2CPARINTFLDS USE :: PARAMETRIZATION_ENUMERATORS_MOD, ONLY: N_PARSTRFLDS diff --git a/src/multiom/encoders/dictionaries/time_utils_mod.F90 b/src/multiom/encoders/dictionaries/time_utils_mod.F90 index 53d00c664..884e43cd1 100644 --- a/src/multiom/encoders/dictionaries/time_utils_mod.F90 +++ b/src/multiom/encoders/dictionaries/time_utils_mod.F90 @@ -114,12 +114,11 @@ MODULE TIME_UTILS_MOD #define PP_PROCEDURE_TYPE 'FUNCTION' #define PP_PROCEDURE_NAME 'COMPUTE_CURRENT_TIME' PP_THREAD_SAFE FUNCTION COMPUTE_CURRENT_TIME( & -& MSG, PAR, TIME_HISTORY, CURR_TIME, OPT, HOOKS ) RESULT(RET) +& MSG, PAR, TIME_HISTORY, CURR_TIME, HOOKS ) RESULT(RET) ! Symbols imported from other modules within the project. USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T USE :: DATETIME_UTILS_MOD, ONLY: HOURS2SECONDS @@ -140,7 +139,6 @@ PP_THREAD_SAFE FUNCTION COMPUTE_CURRENT_TIME( & TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR TYPE(TIME_HISTORY_T), INTENT(INOUT) :: TIME_HISTORY TYPE(CURR_TIME_T), INTENT(INOUT) :: CURR_TIME - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS !> Function result @@ -1738,4 +1736,4 @@ END FUNCTION CB_IS_EMPTY END MODULE TIME_UTILS_MOD #undef PP_SECTION_NAME #undef PP_SECTION_TYPE -#undef PP_FILE_NAME \ No newline at end of file +#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/CMakeLists.txt deleted file mode 100644 index fe7adb9ec..000000000 --- a/src/multiom/encoders/grib2-encoder/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -set(MULTIOM_ENCODERS_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + encoders sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - -# -# Add Subdirectories -add_subdirectory(section-encoders) - - - -# Collect source files in module2 -set( MULTIOM_ENCODERS_MAIN_SOURCES - ${MULTIOM_ENCODERS_DIR}/grib_section_base_mod.F90 - ${MULTIOM_ENCODERS_DIR}/grib_encoder_options_mod.F90 - ${MULTIOM_ENCODERS_DIR}/grib_encoder_factory_mod.F90 - ${MULTIOM_ENCODERS_DIR}/multiom_raw_encoder_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODERS_SOURCES - ${MULTIOM_ENCODERS_MAIN_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SOURCES} - CACHE INTERNAL "List of all sources in operations directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODERS_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/grib_encoder_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/grib_encoder_factory_mod.F90 deleted file mode 100644 index 054e6a4bf..000000000 --- a/src/multiom/encoders/grib2-encoder/grib_encoder_factory_mod.F90 +++ /dev/null @@ -1,768 +0,0 @@ -!> -!> @file grib_encoder_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing encoder objects. -!> -!> The `GRIB_ENCODER_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of encoder objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] ENCODER_000_MOD::ENCODER_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib_encoder_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB_ENCODER_FACTORY_MOD' -MODULE GRIB_ENCODER_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the encoder number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: ENCODER_KEY='type' - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_ENCODER - MODULE PROCEDURE MAKE_ENCODER_CFG - MODULE PROCEDURE MAKE_ENCODER_LAZY -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_ENCODER -PUBLIC :: DESTROY_ENCODER -PUBLIC :: READ_ENCODER_TYPE - -CONTAINS - -!> -!> @brief Factory function for creating or initializing encoder objects. -!> -!> This function acts as a factory for creating or initializing a encoder object -!> based on the provided parameters. -!> -!> @param [inout] ENCODER The encoder object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] CFG YAML configuration object used to configure the encoder object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `ENCODER_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] ENCODER_000_MOD::ENCODER_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see ENCODER_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_ENCODER_CFG' -PP_THREAD_SAFE FUNCTION MAKE_ENCODER_CFG( ENCODER, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_ENCODER_MOD, ONLY: GRIB2_ENCODER_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: ENCODER - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_ENCODER_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_ENCODER_TYPE) READ_ENCODER_TYPE( CFG, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_ENCODER_T::ENCODER, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) ENCODER%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_ENCODER_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to read encoder type from configuration' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown section0 number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section0 number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section0 number: '//TRIM(ADJUSTL(TMP))//' : '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing section0 number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_ENCODER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Factory function for creating or initializing encoder objects. -!> -!> This function acts as a factory for creating or initializing a encoder object -!> based on the provided parameters. It assigns the proper type (`ENCODER_000_T`) -!> to the `ENCODER` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] ENCODER The encoder object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `ENCODER_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] ENCODER_000_MOD::ENCODER_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see ENCODER_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_ENCODER_LAZY' -PP_THREAD_SAFE FUNCTION MAKE_ENCODER_LAZY( ENCODER, & -& MSG, PAR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_ENCODER_MOD, ONLY: GRIB2_ENCODER_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - -#if defined( PP_HAS_GET_ENCODER_ID_FROM_MESSAGE ) - !> Symbols imported from the mapping module - USE :: MARS2GRIB_MAPPING_MOD, ONLY: GET_ENCODER_ID_FROM_MESSAGE -#endif - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: ENCODER - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_ENCODER_ID=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - -#if defined( PP_HAS_GET_ENCODER_ID_FROM_MESSAGE ) - !> Get the encoder ID from the message - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_ENCODER_ID) GET_ENCODER_ID_FROM_MESSAGE( MSG, PAR, OPT, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_ENCODER_T::ENCODER, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) ENCODER%INIT( MSG, CFG, OPT, HOOKS ) -#else - - ! Logging informations - PP_LOG_TODO( 'Impossible to construct the encoder' ) - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNABLE_TO_GET_ENCODER_ID ) -#endif - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_GET_ENCODER_ID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get encoder ID from message' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown section0 number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section0 number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section0 number: '//TRIM(ADJUSTL(TMP))//' : '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing section0 number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_ENCODER_LAZY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a encoder structure. -!> -!> This function takes a encoder object (`ENCODER`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] ENCODER The encoder object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_ENCODER -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_ENCODER' -PP_THREAD_SAFE FUNCTION DESTROY_ENCODER( ENCODER, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: ENCODER - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(ENCODER), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) ENCODER%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( ENCODER, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'section0 to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - IF ( .NOT.ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating section0 number' ) - ELSE - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating section0 number: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing section0' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_ENCODER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the encoder object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the encoder object. -!> @param [out] ENCODER_TYPE Identifier of the section0 type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_ENCODER -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_ENCODER_TYPE' -PP_THREAD_SAFE FUNCTION READ_ENCODER_TYPE( CFG, ENCODER_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ENCODER_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CENCODER_TYPE - LOGICAL :: HAS_ENCODER - LOGICAL :: ENCODER_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - ENCODER_TYPE = -1_JPIB_K - - !> Check if configuration has the ENCODER key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, ENCODER_KEY, HAS_ENCODER, HOOKS ) - - !> Read the ENCODER template number - IF ( HAS_ENCODER ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, ENCODER_KEY, CENCODER_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CENCODER_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CENCODER_TYPE, ENCODER_IS_INTEGER, HOOKS ) - IF ( ENCODER_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CENCODER_TYPE, ENCODER_TYPE, HOOKS ) - ELSE - SELECT CASE( TRIM(ADJUSTL(CENCODER_TYPE)) ) - CASE ( 'grib2' ) - ENCODER_TYPE = 0_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CENCODER_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ENCODER ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating ENCODER number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_ENCODER_TYPE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB_ENCODER_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/grib_encoder_options_mod.F90 b/src/multiom/encoders/grib2-encoder/grib_encoder_options_mod.F90 deleted file mode 100644 index 476fcba9a..000000000 --- a/src/multiom/encoders/grib2-encoder/grib_encoder_options_mod.F90 +++ /dev/null @@ -1,68 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib_encoder_options_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB_ENCODER_OPTIONS_MOD' -MODULE GRIB_ENCODER_OPTIONS_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - -IMPLICIT NONE - -PRIVATE - -TYPE :: GRIB_ENCODER_OPTIONS_T - - ! Variables used to control the cache dump functionality - LOGICAL :: ALLOW_MULTIPLE_ENCODING_RULES = .FALSE. - LOGICAL :: DUMP_SAMPLES_TO_ONE_FILE = .TRUE. - LOGICAL :: PRINT_DICTIONARIES = .FALSE. - LOGICAL :: PRINT_WHOLE_ERROR_STACK = .FALSE. ! If .FALSE. just print the last frame - LOGICAL :: DUMP_DICTIONARIES = .FALSE. - LOGICAL :: WRITE_DEBUG_FIELDS = .FALSE. - LOGICAL :: GENERATE_TEST_CASES = .FALSE. - CHARACTER(LEN=256) :: DUMP_PATH = '.' - - ! Variables used to control the size of the cache - LOGICAL :: CACHE_LOCAL_USE_INFO = .TRUE. ! Should always be true - LOGICAL :: CACHE_PRODUCT_DEFINITION_INFO = .TRUE. ! Should always be true - LOGICAL :: CACHE_GRID_DEFINITION_INFO = .TRUE. ! Should always be true - - LOGICAL :: CACHE_SATELLITES_INFO = .FALSE. - LOGICAL :: CACHE_TYPE_OF_LEVELS = .FALSE. - LOGICAL :: CACHE_DIRECTION_FREQUENCY = .FALSE. - - ! This should never be true, it is only for consistency in the comparison routines - LOGICAL :: CACHE_TIME_RELATED_INFO = .FALSE. ! Should always be false - - ! Variables used to control the cache usage - LOGICAL :: ENABLE_CACHE = .FALSE. - INTEGER(KIND=JPIB_K) :: CACHE_STRATEGY = OPT_CACHE_FULL_E - - ! Checks - LOGICAL :: USE_TYPE_OF_LEVEL = .TRUE. - LOGICAL :: CHECK_TYPE_OF_LEVEL = .FALSE. - LOGICAL :: CHECK_TYPE_OF_LEVEL_RT = .FALSE. - LOGICAL :: BAD_INIT_TYPE_OF_LEVEL = .FALSE. - - ! Dimension of the time history buffer - INTEGER(KIND=JPIB_K) :: TIME_HISTORY_CAPACITY = 100_JPIB_K - - -END TYPE - - - -PUBLIC :: GRIB_ENCODER_OPTIONS_T - -END MODULE GRIB_ENCODER_OPTIONS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/grib_section_base_mod.F90 b/src/multiom/encoders/grib2-encoder/grib_section_base_mod.F90 deleted file mode 100644 index 3422ac2f4..000000000 --- a/src/multiom/encoders/grib2-encoder/grib_section_base_mod.F90 +++ /dev/null @@ -1,937 +0,0 @@ -!> -!> @brief Module containing GRIB section management interfaces. -!> -!> The `GRIB_SECTION_IF_MOD` module provides the abstract interface definitions and -!> implementation of various operations for managing GRIB sections, such as initialization, -!> allocation, presetting, runtime operations, encoding, and freeing. These interfaces -!> ensure that different GRIB sections are handled uniformly within the software. -!> -!> Each operation is thread-safe and performs its task based on the parameters passed, -!> while supporting debug, trace, and logging features via conditional dependencies. -!> -!> @section interface -!> This module defines several thread-safe interfaces, all returning an integer error code: -!> - `GRIB2_SECTION_INIT_IF`: Initializes a GRIB section. -!> - `GRIB_SECTION_ALLOCATE_IF`: Allocates resources for a GRIB section. -!> - `GRIB_SECTION_PRESET_IF`: Prepares the GRIB section before runtime. -!> - `GRIB_SECTION_RUNTIME_IF`: Performs runtime operations on the GRIB section. -!> - `GRIB2_SECTION_TO_BE_ENCODED_IF`: Handles the encoding status of a GRIB section. -!> - `GRIB_SECTION_FREE_IF`: Frees resources associated with the GRIB section. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] ENCODER_OPTIONS_MOD::ENCODER_OPTIONS_T -!> - @dependency [TYPE] TIME_UTILS_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] TIME_UTILS_MOD::CURR_TIME_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section external dependencies -!> - None. -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @section intrinsic dependencies -!> - None. -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib_section_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB_SECTION_BASE_MOD' -MODULE GRIB_SECTION_BASE_MOD - -IMPLICIT NONE - -!> Default visibility of the module members -PRIVATE - - -!> -!> @brief Abstract base class for GRIB section operations. -!> -!> This abstract type `GRIB_SECTION_BASE_A` serves as the base for all GRIB section-related operations. -!> It defines the following deferred procedures that must be implemented by derived types: -!> -!> - `INIT`: Initializes the GRIB section. -!> - `ALLOCATE`: Allocates resources for the GRIB section. -!> - `PRESET`: Sets preset values for the GRIB section. -!> - `RUNTIME`: Executes runtime operations for the GRIB section. -!> - `TO_BE_ENCODED`: Marks the GRIB section for encoding. -!> - `FREE`: Frees allocated resources for the GRIB section. -!> -!> @section interface -!> The abstract type contains the following deferred procedures: -!> -!> @dependency [INTERFACE] GRIB_SECTION_INIT_IF "Deferred procedure for initialization." -!> @dependency [INTERFACE] GRIB_SECTION_ALLOCATE_IF "Deferred procedure for allocation." -!> @dependency [INTERFACE] GRIB_SECTION_PRESET_IF "Deferred procedure for presetting values." -!> @dependency [INTERFACE] GRIB_SECTION_RUNTIME_IF "Deferred procedure for runtime operations." -!> @dependency [INTERFACE] GRIB_SECTION_TO_BE_ENCODED_IF "Deferred procedure for encoding the section." -!> @dependency [INTERFACE] GRIB_SECTION_FREE_IF "Deferred procedure for freeing resources." -!> -!> @section local dependencies -!> None. -!> -!> @section external dependencies -!> None. -!> -!> @section intrinsic dependencies -!> None. -!> -!> @section Error codes -!> This abstract type does not handle errors directly, but errors may be generated in the implementations of the deferred methods. -!> -TYPE, ABSTRACT :: GRIB_SECTION_BASE_A - - !< Name of the GRIB section - CHARACTER(LEN=32) :: TYPE_ = REPEAT(' ', 32) - - !< Name of the GRIB section - CHARACTER(LEN=32) :: SUBTYPE_ = REPEAT(' ', 32) - - !< Name of the GRIB section - CHARACTER(LEN=32) :: KIND_ = REPEAT(' ', 32) - - -CONTAINS - - !> Deferred procedures for GRIB section operations - - !> - !> @brief Initializes the section - PROCEDURE(GRIB_SECTION_INIT_CFG_IF), DEFERRED, PASS, PUBLIC :: INIT - - !> - !> @brief Allocates resources for the section - PROCEDURE(GRIB_SECTION_ALLOCATE_IF), DEFERRED, PASS, PUBLIC :: ALLOCATE - - !> - !> @brief Presets the parameters of the section - PROCEDURE(GRIB_SECTION_PRESET_IF), DEFERRED, PASS, PUBLIC :: PRESET - - !> - !> @brief Manages the runtime execution of section - PROCEDURE(GRIB_SECTION_RUNTIME_IF), DEFERRED, PASS, PUBLIC :: RUNTIME - - !> - !> @brief Frees resources allocated for the section - PROCEDURE(GRIB_SECTION_FREE_IF), DEFERRED, PASS, PUBLIC :: FREE - - - !> Concrete procedures for GRIB section operations - - !> - !> @brief Return the type of the section - PROCEDURE, PUBLIC, PASS :: TYPE => GRIB_SECTION_TYPE - - !> - !> @brief REturn the subtype of the section - PROCEDURE, PUBLIC, PASS :: SUBTYPE => GRIB_SECTION_SUBTYPE - - !> - !> @brief REturn the subtype of the section - PROCEDURE, PUBLIC, PASS :: KIND => GRIB_SECTION_KIND - - !> - !> @brief Print the section type/subtype/kind on the given unit - PROCEDURE, PUBLIC, PASS :: PRINT => GRIB2_SECTION_PRINT - -END TYPE - - -ABSTRACT INTERFACE - -!> -!> @brief Initializes a GRIB section with the given parameters and configuration. -!> -!> The `GRIB_SECTION_INIT_CFG_IF` function initializes a GRIB section represented by the `THIS` object. -!> It takes a parametrization, encoder options, YAML configuration, and hooks to complete the initialization. -!> The function returns an integer indicating the success or failure of the initialization process. -!> -!> This function is thread-safe. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB_SECTION_BASE_A` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `GRIB_ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> @return Integer error code (`RET`) indicating success (`0`) or failure (`1`). -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] GRIB_ENCODER_OPTIONS_MOD::GRIB_ENCODER_OPTIONS_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -!> @section Error codes -!> - `0`: Success. -!> - `1`: Failure in initializing the GRIB section. -!> -PP_THREAD_SAFE FUNCTION GRIB_SECTION_INIT_CFG_IF( THIS, CFG, & -& OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Imported abstract class - IMPORT :: GRIB_SECTION_BASE_A - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB_SECTION_BASE_A), INTENT(INOUT) :: THIS - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - -END FUNCTION GRIB_SECTION_INIT_CFG_IF - - -!> -!> @brief Allocates resources for a GRIB section based on the given parametrization and metadata. -!> -!> The `GRIB_SECTION_ALLOCATE_IF` function allocates memory and resources for the GRIB section represented by the `THIS` object. -!> It utilizes a parametrization, message, metadata, and hooks to perform the allocation. -!> This function is thread-safe and returns an integer indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB_SECTION_BASE_A` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> @return Integer error code (`RET`) indicating success (`0`) or failure (`1`). -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] GRIB_ENCODER_OPTIONS_MOD::GRIB_ENCODER_OPTIONS_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -!> @section Error codes -!> - `0`: Success. -!> - `1`: Failure during resource allocation. -!> -PP_THREAD_SAFE FUNCTION GRIB_SECTION_ALLOCATE_IF( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Imported abstract class - IMPORT :: GRIB_SECTION_BASE_A - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB_SECTION_BASE_A), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - -END FUNCTION GRIB_SECTION_ALLOCATE_IF - - -!> -!> @brief Presets the GRIB section with the given parameters and metadata before runtime execution. -!> -!> The `GRIB_SECTION_PRESET_IF` function applies preset values and configurations to the GRIB section represented by the `THIS` object. -!> It uses a parametrization, message, metadata, and hooks to prepare the section for subsequent runtime operations. -!> This function is thread-safe and returns an integer indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB_SECTION_BASE_A` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> @return Integer error code (`RET`) indicating success (`0`) or failure (`1`). -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] GRIB_ENCODER_OPTIONS_MOD::GRIB_ENCODER_OPTIONS_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -!> @section Error codes -!> - `0`: Success. -!> - `1`: Failure during preset operation. -!> -PP_THREAD_SAFE FUNCTION GRIB_SECTION_PRESET_IF( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Imported abstract class - IMPORT :: GRIB_SECTION_BASE_A - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB_SECTION_BASE_A), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - -END FUNCTION GRIB_SECTION_PRESET_IF - - -!> -!> @brief Executes runtime operations for a GRIB section based on the provided parameters and time information. -!> -!> The `GRIB_SECTION_RUNTIME_IF` function carries out the runtime phase for the GRIB section represented by the `THIS` object. -!> It uses a parametrization, message, current time, time history, metadata, and hooks to perform the runtime operations. -!> This function is thread-safe and returns an integer indicating the success or failure of the runtime execution. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB_SECTION_BASE_A` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> @return Integer error code (`RET`) indicating success (`0`) or failure (`1`). -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] TIME_UTILS_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] TIME_UTILS_MOD::CURR_TIME_T -!> - @dependency [TYPE] GRIB_ENCODER_OPTIONS_MOD::GRIB_ENCODER_OPTIONS_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -!> @section Error codes -!> - `0`: Success. -!> - `1`: Failure during runtime execution. -!> -PP_THREAD_SAFE FUNCTION GRIB_SECTION_RUNTIME_IF( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Imported abstract class - IMPORT :: GRIB_SECTION_BASE_A - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB_SECTION_BASE_A), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - -END FUNCTION GRIB_SECTION_RUNTIME_IF - - -!> -!> @brief Frees resources associated with a GRIB section. -!> -!> The `GRIB_SECTION_FREE_IF` function is responsible for deallocating any resources or memory -!> associated with the GRIB section represented by `THIS`. It provides an optional `VERBOSE` -!> flag that enables more detailed output during the resource cleanup. This function is -!> thread-safe and ensures that all resources tied to the GRIB section are released properly. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB_SECTION_BASE_A` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> @return Integer error code (`RET`) indicating success (`0`) or failure (`1`). -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] GRIB_ENCODER_OPTIONS_MOD::GRIB_ENCODER_OPTIONS_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -!> @section Error codes -!> - `0`: Success, resources were freed successfully. -!> - `1`: Failure, an issue occurred during resource deallocation. -!> -PP_THREAD_SAFE FUNCTION GRIB_SECTION_FREE_IF( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Imported abstract class - IMPORT :: GRIB_SECTION_BASE_A - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB_SECTION_BASE_A), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - -END FUNCTION GRIB_SECTION_FREE_IF - -END INTERFACE - - -INTERFACE -PP_THREAD_SAFE FUNCTION SECTION_ALLOCATOR_IF( SECTION, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Imported abstract class - IMPORT :: GRIB_SECTION_BASE_A - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: SECTION - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - -END FUNCTION SECTION_ALLOCATOR_IF - - -PP_THREAD_SAFE FUNCTION SECTION_DEALLOCATOR_IF( SECTION, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Imported abstract class - IMPORT :: GRIB_SECTION_BASE_A - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: SECTION - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - -END FUNCTION SECTION_DEALLOCATOR_IF - -END INTERFACE - - -!> Whitelist of public symbols (Interfaces) -PUBLIC :: GRIB_SECTION_BASE_A -PUBLIC :: SECTION_ALLOCATOR_IF -PUBLIC :: SECTION_DEALLOCATOR_IF - -CONTAINS - - - -!> -!> @brief Return the type of the section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB_SECTION_BASE_A` representing the GRIB section to be freed. -!> @param [in] TYPE The the type of the section -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> @return Integer error code (`RET`) indicating success (`0`) or failure (`1`). -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] GRIB_ENCODER_OPTIONS_MOD::GRIB_ENCODER_OPTIONS_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -!> @section Error codes -!> - `0`: Success, resources were freed successfully. -!> - `1`: Failure, an issue occurred during resource deallocation. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB_SECTION_TYPE' -PP_THREAD_SAFE FUNCTION GRIB_SECTION_TYPE( THIS, TYPE, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB_SECTION_BASE_A), INTENT(INOUT) :: THIS - CHARACTER(LEN=32), INTENT(OUT) :: TYPE - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Return the section type - TYPE = REPEAT( ' ', 32 ) - TYPE = TRIM(ADJUSTL(THIS%TYPE_)) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - - - -END FUNCTION GRIB_SECTION_TYPE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Return the subtype of the section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB_SECTION_BASE_A` representing the GRIB section to be freed. -!> @param [in] SUBTYPE The the subtype of the section -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> @return Integer error code (`RET`) indicating success (`0`) or failure (`1`). -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -!> @section Error codes -!> - `0`: Success, resources were freed successfully. -!> - `1`: Failure, an issue occurred during resource deallocation. -!> -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB_SECTION_SUBTYPE' -PP_THREAD_SAFE FUNCTION GRIB_SECTION_SUBTYPE( THIS, SUBTYPE, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB_SECTION_BASE_A), INTENT(INOUT) :: THIS - CHARACTER(LEN=32), INTENT(OUT) :: SUBTYPE - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Return the section type - SUBTYPE = REPEAT( ' ', 32 ) - SUBTYPE = TRIM(ADJUSTL(THIS%SUBTYPE_)) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -END FUNCTION GRIB_SECTION_SUBTYPE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Return the kind of the section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB_SECTION_BASE_A` representing the GRIB section to be freed. -!> @param [in] TYPE The the type of the section -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> @return Integer error code (`RET`) indicating success (`0`) or failure (`1`). -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -!> @section Error codes -!> - `0`: Success, resources were freed successfully. -!> - `1`: Failure, an issue occurred during resource deallocation. -!> -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB_SECTION_KIND' -PP_THREAD_SAFE FUNCTION GRIB_SECTION_KIND( THIS, KIND, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB_SECTION_BASE_A), INTENT(INOUT) :: THIS - CHARACTER(LEN=32), INTENT(OUT) :: KIND - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Return the section type - KIND = REPEAT( ' ', 32 ) - KIND = TRIM(ADJUSTL(THIS%KIND_)) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -END FUNCTION GRIB_SECTION_KIND -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB_SECTION_BASE_A` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB_SECTION_BASE_A), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging informations - PP_LOG_STRICT_DEVELOP( 'Print GRIB Section' ) - - ! Write the section information - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), ')', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), ')', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), ')' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), ')' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB_SECTION_BASE_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/multiom_raw_encoder_mod.F90 b/src/multiom/encoders/grib2-encoder/multiom_raw_encoder_mod.F90 deleted file mode 100644 index ccf716698..000000000 --- a/src/multiom/encoders/grib2-encoder/multiom_raw_encoder_mod.F90 +++ /dev/null @@ -1,974 +0,0 @@ -!> -!> @file filter_level_mod.F90 -!> -!> @brief Module containing definitions and procedures for level filters. -!> -!> This module defines the `FILTER_LEVELIST_T` type, along with its associated -!> procedures and helper functions that facilitate the creation, management, and -!> utilization of level filters within the system. Level filters allow for -!> complex filtering operations by combining multiple nested filters. -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'multiom_raw_encoder_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'MULTIOM_RAW_ENCODER_MOD' -MODULE MULTIOM_RAW_ENCODER_MOD - - ! Symbols imported from other modules within the project. - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> Default visibility of the module -PRIVATE - -!> Type used to store a grib encoder -TYPE :: MULTIOM_RAW_ENCODER_T - - !> Default visibility of the type - PRIVATE - - !> Options - TYPE(GRIB_ENCODER_OPTIONS_T) :: ENCODER_OPT_ - - !> Pointer to the class - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENCODER_ => NULL() - -CONTAINS - - PROCEDURE, PUBLIC, NON_OVERRIDABLE, PASS :: INIT => MULTIOM_RAW_ENCODER_INIT - - PROCEDURE, PUBLIC, NON_OVERRIDABLE, PASS :: PREPARE => MULTIOM_RAW_ENCODER_PREPARE - - PROCEDURE, PUBLIC, NON_OVERRIDABLE, PASS :: ALLOCATE => MULTIOM_RAW_ENCODER_ALLOCATE - - PROCEDURE, PUBLIC, NON_OVERRIDABLE, PASS :: PRESET => MULTIOM_RAW_ENCODER_PRESET - - PROCEDURE, PUBLIC, NON_OVERRIDABLE, PASS :: RUNTIME => MULTIOM_RAW_ENCODER_RUNTIME - - PROCEDURE, PUBLIC, NON_OVERRIDABLE, PASS :: PRINT => MULTIOM_RAW_ENCODER_PRINT - - PROCEDURE, PUBLIC, NON_OVERRIDABLE, PASS :: FREE => MULTIOM_RAW_ENCODER_FREE - -END TYPE - -!> Whitelist of public symbols -PUBLIC :: MULTIOM_RAW_ENCODER_T - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIOM_RAW_ENCODER_INIT' -PP_THREAD_SAFE FUNCTION MULTIOM_RAW_ENCODER_INIT( THIS, & -& ENCODER_CFG, ENCODER_OPT, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB_ENCODER_FACTORY_MOD, ONLY: MAKE_ENCODER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(MULTIOM_RAW_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: ENCODER_CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: ENCODER_OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_ALREADY_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENCODER = 2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENCODER_), ERRFLAG_ENCODER_ALREADY_ASSOCIATED ) - - ! Copy options - THIS%ENCODER_OPT_ = ENCODER_OPT - - !> Make the encoder (recursively go through the configuration an create all the nested objects) - PP_LOG_DEVELOP_STR( ' * Make encoder' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENCODER) MAKE_ENCODER( & -& THIS%ENCODER_, ENCODER_CFG, THIS%ENCODER_OPT_, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder is already associated' ) - CASE (ERRFLAG_UNABLE_TO_MAKE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to make the encoder' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - - -END FUNCTION MULTIOM_RAW_ENCODER_INIT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIOM_RAW_ENCODER_PREPARE' -PP_THREAD_SAFE FUNCTION MULTIOM_RAW_ENCODER_PREPARE( THIS, & -& MSG, PAR, GEO, C_GRIB_SAMPLE_P, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - uSE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: CGRIB_METADATA_MOD, ONLY: CGRIB_METADATA_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(MULTIOM_RAW_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(C_PTR), INTENT(IN) :: C_GRIB_SAMPLE_P - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - TYPE(CGRIB_METADATA_T), TARGET :: METADATA - CLASS(METADATA_BASE_A), POINTER :: P_METADATA - INTEGER(KINd=JPIM_K) :: LOC_GRIB_SAMPLE - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENCODER = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_BIND_METADATA = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PERFORM_ALLOCATE_STAGE = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SAFE_LOAD1 = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PERFORM_PRESET_STAGE = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SAFE_LOAD2 = 7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_TAKE_HANDLE = 8_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(THIS%ENCODER_), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - - !> Bind the sample to the metadata - PP_LOG_DEVELOP_STR( ' * Bind metadata for prepare stage...' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_BIND_METADATA) METADATA%BIND_HANDLE( C_GRIB_SAMPLE_P, HOOKS ) - P_METADATA => METADATA - - PP_LOG_DEVELOP_STR( ' * Nothing to do for prepare stage...' ) - - NULLIFY( P_METADATA ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_BIND_METADATA) METADATA%UNBIND_HANDLE( HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder is not associated' ) - CASE (ERRFLAG_UNABLE_TO_MAKE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to make the encoder' ) - CASE (ERRFLAG_UNABLE_TO_BIND_METADATA) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to bind the encoder to the sample' ) - CASE (ERRFLAG_UNABLE_TO_PERFORM_ALLOCATE_STAGE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate the encoder' ) - CASE (ERRFLAG_UNABLE_TO_SAFE_LOAD1) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to safe load the sample after allocation' ) - CASE (ERRFLAG_UNABLE_TO_PERFORM_PRESET_STAGE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to preset the sample' ) - CASE (ERRFLAG_UNABLE_TO_SAFE_LOAD2) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to safe load the sample after preset' ) - CASE (ERRFLAG_UNABLE_TO_TAKE_HANDLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to take the sample from the metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - - -END FUNCTION MULTIOM_RAW_ENCODER_PREPARE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIOM_RAW_ENCODER_ALLOCATE' -PP_THREAD_SAFE FUNCTION MULTIOM_RAW_ENCODER_ALLOCATE( THIS, & -& MSG, PAR, GEO, C_GRIB_SAMPLE_P, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - uSE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: CGRIB_METADATA_MOD, ONLY: CGRIB_METADATA_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(MULTIOM_RAW_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(C_PTR), INTENT(IN) :: C_GRIB_SAMPLE_P - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - TYPE(CGRIB_METADATA_T), TARGET :: METADATA - CLASS(METADATA_BASE_A), POINTER :: P_METADATA - INTEGER(KINd=JPIM_K) :: LOC_GRIB_SAMPLE - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENCODER = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_BIND_METADATA = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PERFORM_ALLOCATE_STAGE = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SAFE_LOAD1 = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PERFORM_PRESET_STAGE = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SAFE_LOAD2 = 7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_TAKE_HANDLE = 8_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(THIS%ENCODER_), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - - !> Bind the sample to the metadata - PP_LOG_DEVELOP_STR( ' * Bind metadata...' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_BIND_METADATA) METADATA%BIND_HANDLE( C_GRIB_SAMPLE_P, HOOKS ) - P_METADATA => METADATA - - ! Preconfigure the local metadata with all the memory related information - PP_LOG_DEVELOP_STR( ' * Allocate the sample...' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_PERFORM_ALLOCATE_STAGE) & -& THIS%ENCODER_%ALLOCATE( MSG, GEO, PAR, THIS%ENCODER_OPT_, P_METADATA, HOOKS ) - - ! Unbind the metadata object - NULLIFY( P_METADATA ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_BIND_METADATA) METADATA%UNBIND_HANDLE( HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder is not associated' ) - CASE (ERRFLAG_UNABLE_TO_MAKE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to make the encoder' ) - CASE (ERRFLAG_UNABLE_TO_BIND_METADATA) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to bind the encoder to the sample' ) - CASE (ERRFLAG_UNABLE_TO_PERFORM_ALLOCATE_STAGE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate the encoder' ) - CASE (ERRFLAG_UNABLE_TO_SAFE_LOAD1) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to safe load the sample after allocation' ) - CASE (ERRFLAG_UNABLE_TO_PERFORM_PRESET_STAGE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to preset the sample' ) - CASE (ERRFLAG_UNABLE_TO_SAFE_LOAD2) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to safe load the sample after preset' ) - CASE (ERRFLAG_UNABLE_TO_TAKE_HANDLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to take the sample from the metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - - -END FUNCTION MULTIOM_RAW_ENCODER_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIOM_RAW_ENCODER_PRESET' -PP_THREAD_SAFE FUNCTION MULTIOM_RAW_ENCODER_PRESET( THIS, & -& MSG, PAR, GEO, C_GRIB_SAMPLE_P, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - uSE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: CGRIB_METADATA_MOD, ONLY: CGRIB_METADATA_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(MULTIOM_RAW_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(C_PTR), INTENT(IN) :: C_GRIB_SAMPLE_P - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - TYPE(CGRIB_METADATA_T), TARGET :: METADATA - CLASS(METADATA_BASE_A), POINTER :: P_METADATA - INTEGER(KINd=JPIM_K) :: LOC_GRIB_SAMPLE - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENCODER = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_BIND_METADATA = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PERFORM_ALLOCATE_STAGE = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SAFE_LOAD1 = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PERFORM_PRESET_STAGE = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SAFE_LOAD2 = 7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_TAKE_HANDLE = 8_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(THIS%ENCODER_), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - - !> Bind the sample to the metadata - PP_LOG_DEVELOP_STR( ' * Bind metadata...' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_BIND_METADATA) METADATA%BIND_HANDLE( C_GRIB_SAMPLE_P, HOOKS ) - P_METADATA => METADATA - - PP_LOG_DEVELOP_STR( ' * Preset the sample' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_PERFORM_PRESET_STAGE) & -& THIS%ENCODER_%PRESET( MSG, GEO, PAR, THIS%ENCODER_OPT_, P_METADATA, HOOKS ) - - ! Unbind the metadata object - NULLIFY( P_METADATA ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_BIND_METADATA) METADATA%UNBIND_HANDLE( HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder is not associated' ) - CASE (ERRFLAG_UNABLE_TO_MAKE_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to make the encoder' ) - CASE (ERRFLAG_UNABLE_TO_BIND_METADATA) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to bind the encoder to the sample' ) - CASE (ERRFLAG_UNABLE_TO_PERFORM_ALLOCATE_STAGE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to allocate the encoder' ) - CASE (ERRFLAG_UNABLE_TO_SAFE_LOAD1) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to safe load the sample after allocation' ) - CASE (ERRFLAG_UNABLE_TO_PERFORM_PRESET_STAGE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to preset the sample' ) - CASE (ERRFLAG_UNABLE_TO_SAFE_LOAD2) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to safe load the sample after preset' ) - CASE (ERRFLAG_UNABLE_TO_TAKE_HANDLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to take the sample from the metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - - -END FUNCTION MULTIOM_RAW_ENCODER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIOM_RAW_ENCODER_RUNTIME' -PP_THREAD_SAFE FUNCTION MULTIOM_RAW_ENCODER_RUNTIME( THIS, & -& MSG, PAR, GEO, C_GRIB_SAMPLE_P, HOOKS ) RESULT(RET) - - !> Symbols imported from intrinsic modules. - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: CGRIB_METADATA_MOD, ONLY: CGRIB_METADATA_T - uSE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(MULTIOM_RAW_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(C_PTR), INTENT(IN) :: C_GRIB_SAMPLE_P - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - TYPE(CGRIB_METADATA_T), TARGET :: METADATA - CLASS(METADATA_BASE_A), POINTER :: P_METADATA - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_BIND_METADATA = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PERFORM_RUNTIME_STAGE = 3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(THIS%ENCODER_), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - - !> Bind the sample to the metadata - PP_LOG_DEVELOP_STR( ' * Bind metadata...' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_BIND_METADATA) METADATA%BIND_HANDLE( C_GRIB_SAMPLE_P, HOOKS ) - P_METADATA => METADATA - - !> Allocate phase of the sample - PP_LOG_DEVELOP_STR( ' * Perform the runtime stage of the encoder...' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_PERFORM_RUNTIME_STAGE) THIS%ENCODER_%RUNTIME( & -& MSG, GEO, PAR, THIS%ENCODER_OPT_, P_METADATA, HOOKS ) - - ! Unbind the metadata object - NULLIFY( P_METADATA ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_BIND_METADATA) METADATA%UNBIND_HANDLE( HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder is not associated' ) - CASE (ERRFLAG_UNABLE_TO_BIND_METADATA) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to bind the metadata to the sample' ) - CASE (ERRFLAG_UNABLE_TO_PERFORM_RUNTIME_STAGE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to perform the runtime stage of the encoder' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - - -END FUNCTION MULTIOM_RAW_ENCODER_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME ' MULTIOM_RAW_ENCODER_PRINT' -PP_THREAD_SAFE FUNCTION MULTIOM_RAW_ENCODER_PRINT( THIS, UNIT, OFFSET, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(MULTIOM_RAW_ENCODER_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_ENCODER = 2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(THIS%ENCODER_), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - - !> Print all the rules - PP_TRYCALL( ERRFLAG_UNABLE_TO_PRINT_ENCODER ) THIS%ENCODER_%PRINT( & -& UNIT, OFFSET, THIS%ENCODER_OPT_, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder is not associated' ) - CASE (ERRFLAG_UNABLE_TO_PRINT_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to print the encoder' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - - -END FUNCTION MULTIOM_RAW_ENCODER_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MULTIOM_RAW_ENCODER_FREE' -PP_THREAD_SAFE FUNCTION MULTIOM_RAW_ENCODER_FREE( THIS, HOOKS ) RESULT(RET) - - ! Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_FACTORY_MOD, ONLY: DESTROY_ENCODER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(MULTIOM_RAW_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENCODER_NOT_ASSOCIATED = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEESTROY_ENCODER = 2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(THIS%ENCODER_), ERRFLAG_ENCODER_NOT_ASSOCIATED ) - - !> Deallocate the encoder - PP_LOG_DEVELOP_STR( ' * Destroy the encoder...' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_DEESTROY_ENCODER) DESTROY_ENCODER( THIS%ENCODER_, THIS%ENCODER_OPT_, HOOKS ) - - !> Nullify the encoder pointer - THIS%ENCODER_ => NULL() - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_ENCODER_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Encoder is not associated' ) - CASE (ERRFLAG_UNABLE_TO_DEESTROY_ENCODER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to destroy the encoder' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - - -END FUNCTION MULTIOM_RAW_ENCODER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE MULTIOM_RAW_ENCODER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/CMakeLists.txt deleted file mode 100644 index 0ffb3b1ec..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 encoder sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - -# -# Add Subdirectories -add_subdirectory(grib2-section0) -add_subdirectory(grib2-section1) -add_subdirectory(grib2-section2) -add_subdirectory(grib2-section3) -add_subdirectory(grib2-section4) -add_subdirectory(grib2-section5) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_DIR}/grib2_encoder_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SOURCES - ${MULTIOM_ENCODER_GRIB2_MAIN_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION0_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION1_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION2_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION3_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION5_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section0/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section0/CMakeLists.txt deleted file mode 100644 index faf720357..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section0/CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION0_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section0 sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION0_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION0_DIR}/grib2_section0_000_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION0_DIR}/grib2_section0_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION0_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION0_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION0_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section0/grib2_section0_000_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section0/grib2_section0_000_mod.F90 deleted file mode 100644 index 1f663bad7..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section0/grib2_section0_000_mod.F90 +++ /dev/null @@ -1,868 +0,0 @@ -!> -!> @file grib2_section0_000_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 0 operations. -!> -!> The `GRIB2_SECTION0_000_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 0 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 0 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION0_000_INIT -!> - @see GRIB2_SECTION0_000_ALLOCATE -!> - @see GRIB2_SECTION0_000_PRESET -!> - @see GRIB2_SECTION0_000_RUNTIME -!> - @see GRIB2_SECTION0_000_TO_BE_ENCODED -!> - @see GRIB2_SECTION0_000_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section0_000_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION0_000_MOD' -MODULE GRIB2_SECTION0_000_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 0 handler. -!> -!> The `GRIB2_SECTION0_000_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 0 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION0_000_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 0 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION0_000_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 0 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION0_000_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 0 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION0_000_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 0 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION0_000_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 0 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION0_000_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION0_000_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 0 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 0 object (`THIS`) using YAML configuration data (`CFG`). -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_@XXX@_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION0_000_INIT -!> @see GRIB2_SECTION0_000_ALLOCATE -!> @see GRIB2_SECTION0_000_PRESET -!> @see GRIB2_SECTION0_000_RUNTIME -!> @see GRIB2_SECTION0_000_TO_BE_ENCODED -!> @see GRIB2_SECTION0_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION0_000_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION0_000_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION0_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'INDICATOR_SECTION' - THIS%KIND_ = '0.0' - - ! Logging informations - PP_LOG_TODO( 'Cfg initialization of GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//'('//TRIM(ADJUSTL(THIS%KIND_))//')' ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION0_000_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 0 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 0 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_@XXX@_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION0_000_ALLOCATE -!> @see GRIB2_SECTION0_000_INIT -!> @see GRIB2_SECTION0_000_PRESET -!> @see GRIB2_SECTION0_000_RUNTIME -!> @see GRIB2_SECTION0_000_TO_BE_ENCODED -!> @see GRIB2_SECTION0_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION0_000_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION0_000_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION0_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_INFO( 'Allocating GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'.'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION0_000_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 0 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 0 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION0_000_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION0_000_PRESET -!> @see GRIB2_SECTION0_000_ALLOCATE -!> @see GRIB2_SECTION0_000_INIT -!> @see GRIB2_SECTION0_000_RUNTIME -!> @see GRIB2_SECTION0_000_TO_BE_ENCODED -!> @see GRIB2_SECTION0_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION0_000_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION0_000_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - -#if defined( PP_HAS_GET_DISCIPLINE_FROM_MESSAGE ) - !> Symbols imported from the mapping module - USE :: MARS2GRIB_MAPPING_MOD, ONLY: GET_DISCIPLINE_FROM_MESSAGE -#endif - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION0_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - -#if defined( PP_HAS_GET_DISCIPLINE_FROM_MESSAGE ) - - ! Extract discipline from message - PP_TRYCALL(ERRFLAG_GET_DISCIPLINE_FROM_MESSAGE) GET_DISCIPLINE_FROM_MESSAGE( MSG, PAR, OPT, DISCIPLINE, HOOKS ) - - ! Set discipline - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'discipline', DISCIPLINE ) - -#else - ! Logging informations - PP_LOG_TODO( 'Preset GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': "discipline" needs to be extracted from mars' ) -#endif - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION0_000_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 0 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 0 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> -!> @param [in] THIS An object of type `GRIB2_SECTION0_000_T` representing the GRIB section to be allocated. -!> @param [in] PARAMS Model parameters used during the runtime process. -!> @param [in] MSG Message structure providing necessary information. -!> @param [in] CURR_TIME Current time used in the runtime process. -!> @param [in] TIME_HISTORY Time history information for the runtime process. -!> @param [inout] METADATA Pointer to metadata involved in the runtime process. -!> @param [in] VERBOSE Logical flag for verbose output during the runtime operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION0_000_RUNTIME -!> @see GRIB2_SECTION0_000_ALLOCATE -!> @see GRIB2_SECTION0_000_INIT -!> @see GRIB2_SECTION0_000_PRESET -!> @see GRIB2_SECTION0_000_TO_BE_ENCODED -!> @see GRIB2_SECTION0_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION0_000_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION0_000_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION0_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: DISCIPLINE - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_INFO( 'Runtime GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION0_000_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 0 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 0 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_@XXX@_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION0_000_INIT -!> @see GRIB2_SECTION0_000_ALLOCATE -!> @see GRIB2_SECTION0_000_PRESET -!> @see GRIB2_SECTION0_000_RUNTIME -!> @see GRIB2_SECTION0_000_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION0_000_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION0_000_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION0_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging informations - PP_LOG_TODO( 'Free GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION0_000_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION0_000_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section0/grib2_section0_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section0/grib2_section0_factory_mod.F90 deleted file mode 100644 index 4e7856b69..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section0/grib2_section0_factory_mod.F90 +++ /dev/null @@ -1,572 +0,0 @@ -!> -!> @file grib2_section0_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Section 0 objects. -!> -!> The `GRIB2_SECTION0_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Section 0 objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION0_000_MOD::GRIB2_SECTION0_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section0_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION0_FACTORY_MOD' -MODULE GRIB2_SECTION0_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the section0 number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: SECTION0_KEY='template-number' - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_SECTION0 - MODULE PROCEDURE MAKE_GRIB2_SECTION0_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_SECTION0 -PUBLIC :: DESTROY_GRIB2_SECTION0 - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Section 0 objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Section 0 object -!> based on the provided parameters. It assigns the proper type (`GRIB2_SECTION0_000_T`) -!> to the `GRIB2_SECTION0` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_SECTION0 The GRIB2 Section 0 object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 0 object. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_SECTION0_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION0_000_MOD::GRIB2_SECTION0_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION0_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_SECTION0_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_SECTION0_CFG( GRIB2_SECTION0, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION0_000_MOD, ONLY: GRIB2_SECTION0_000_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION0 - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_SECTION0_TYPE_FROM_CFG( CFG, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION0_000_T::GRIB2_SECTION0, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_SECTION0%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize the error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to read section0 type' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown section0 number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section0 number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(TMP))//' : '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing section0 number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_SECTION0_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Section 0 structure. -!> -!> This function takes a GRIB2 Section 0 object (`GRIB2_SECTION0`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_SECTION0 The GRIB2 Section 0 object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION0 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_SECTION0' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_SECTION0( GRIB2_SECTION0, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION0 - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_SECTION0), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_SECTION0%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_SECTION0, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'section0 to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating section0 number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing section0' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_SECTION0 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Section 0 object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 0 object. -!> @param [out] SECTION0_TYPE Identifier of the section0 type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION0 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_SECTION0_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_SECTION0_TYPE_FROM_CFG( CFG, SECTION0_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KIND=JPIB_K), INTENT(OUT) :: SECTION0_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CSECTION0_TYPE - LOGICAL :: HAS_SECTION0 - LOGICAL :: SECTION0_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - SECTION0_TYPE = -1_JPIB_K - - !> Check if configuration has the SECTION0 key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, SECTION0_KEY, HAS_SECTION0, HOOKS ) - - !> Read the SECTION0 template number - IF ( HAS_SECTION0 ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, SECTION0_KEY, CSECTION0_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CSECTION0_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CSECTION0_TYPE, SECTION0_IS_INTEGER, HOOKS ) - IF ( SECTION0_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CSECTION0_TYPE, SECTION0_TYPE, HOOKS ) - ELSE - ! TODO: Somehow decide automatically whcih SECTION0 to use. String can be - ! a label for the method to use. - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - ENDIF - DEALLOCATE(CSECTION0_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SECTION0 ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating SECTION0 number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_SECTION0_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION0_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/CMakeLists.txt deleted file mode 100644 index 527759ba3..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/CMakeLists.txt +++ /dev/null @@ -1,40 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION1_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section1 sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - -# -# Add Subdirectories -add_subdirectory(grib2-origin-configurator) -add_subdirectory(grib2-tables-configurator) -add_subdirectory(grib2-data-type-configurator) -add_subdirectory(grib2-reference-time-configurator) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION1_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION1_DIR}/grib2_section1_000_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION1_DIR}/grib2_section1_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION1_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION1_MAIN_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION1_ORIGIN_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION1_TABLES_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION1_DATA_TYPE_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION1_REFERENCE_TIME_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION1_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/CMakeLists.txt deleted file mode 100644 index c097c859e..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION1_DATA_TYPE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section1_DATA_TYPE sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION1_DATA_TYPE_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION1_DATA_TYPE_DIR}/grib2_section1_data_type_default_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION1_DATA_TYPE_DIR}/grib2_section1_data_type_custom_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION1_DATA_TYPE_DIR}/grib2_section1_data_type_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION1_DATA_TYPE_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION1_DATA_TYPE_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION1_DATA_TYPE_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/grib2_section1_data_type_custom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/grib2_section1_data_type_custom_mod.F90 deleted file mode 100644 index 23b9b7ae1..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/grib2_section1_data_type_custom_mod.F90 +++ /dev/null @@ -1,885 +0,0 @@ -!> -!> @file grib2_section1_data_type_custom_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION1_DATA_TYPE_CUSTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_INIT -!> - @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_ALLOCATE -!> - @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_PRESET -!> - @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_RUNTIME -!> - @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_TO_BE_ENCODED -!> - @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_data_type_custom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_DATA_TYPE_CUSTOM_MOD' -MODULE GRIB2_SECTION1_DATA_TYPE_CUSTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION1_DATA_TYPE_CUSTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION1_DATA_TYPE_CUSTOM_T - - !> Default symbols visibility - PRIVATE - - INTEGER(KIND=JPIB_K) :: PRODUCTION_STATUS_OF_PROCESSED_DATA_ = 0_JPIB_K - INTEGER(KIND=JPIB_K) :: TYPE_OF_PROCESSED_DATA_ = 0_JPIB_K - - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION1_DATA_TYPE_CUSTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION1_DATA_TYPE_CUSTOM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION1_DATA_TYPE_CUSTOM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION1_DATA_TYPE_CUSTOM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION1_DATA_TYPE_CUSTOM_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION1_DATA_TYPE_CUSTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_DATA_TYPE_CUSTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_INIT -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_PRESET -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_DATA_TYPE_CUSTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_DATA_TYPE_CUSTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_DATA_TYPE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PRODUCTION_STATUS_OF_PROCESSED_DATA - LOGICAL :: HAS_TYPE_OF_PROCESSED_DATA - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'DATA_TYPE' - THIS%KIND_ = 'CUSTOM' - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'production-status-of-processed-data', HAS_PRODUCTION_STATUS_OF_PROCESSED_DATA, HOOKS ) - - ! Read the subCentre - IF (HAS_PRODUCTION_STATUS_OF_PROCESSED_DATA) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'production-status-of-processed-data', THIS%PRODUCTION_STATUS_OF_PROCESSED_DATA_, HOOKS ) - ELSE - THIS%PRODUCTION_STATUS_OF_PROCESSED_DATA_ = 33_JPIB_K - END IF - - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'type-of-processed-data', HAS_TYPE_OF_PROCESSED_DATA, HOOKS ) - - ! Read the subCentre - IF (HAS_TYPE_OF_PROCESSED_DATA) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'type-of-processed-data', THIS%TYPE_OF_PROCESSED_DATA_, HOOKS ) - ELSE - THIS%TYPE_OF_PROCESSED_DATA_ = 0_JPIB_K - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_DATA_TYPE_CUSTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_DATA_TYPE_CUSTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_INIT -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_PRESET -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_DATA_TYPE_CUSTOM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_DATA_TYPE_CUSTOM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_DATA_TYPE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_DATA_TYPE_CUSTOM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_DATA_TYPE_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_PRESET -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_INIT -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_DATA_TYPE_CUSTOM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_DATA_TYPE_CUSTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_DATA_TYPE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productionStatusOfProcessedData', THIS%PRODUCTION_STATUS_OF_PROCESSED_DATA_ ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', THIS%TYPE_OF_PROCESSED_DATA_ ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_DATA_TYPE_CUSTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_DATA_TYPE_CUSTOM_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_INIT -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_PRESET -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_DATA_TYPE_CUSTOM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_DATA_TYPE_CUSTOM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_DATA_TYPE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_DATA_TYPE_CUSTOM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_DATA_TYPE_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_INIT -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_PRESET -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_DATA_TYPE_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_DATA_TYPE_CUSTOM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_DATA_TYPE_CUSTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_DATA_TYPE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_DATA_TYPE_CUSTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -END MODULE GRIB2_SECTION1_DATA_TYPE_CUSTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/grib2_section1_data_type_default_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/grib2_section1_data_type_default_mod.F90 deleted file mode 100644 index 1a47faea8..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/grib2_section1_data_type_default_mod.F90 +++ /dev/null @@ -1,971 +0,0 @@ -!> -!> @file grib2_section1_data_type_default_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION1_DATA_TYPE_DEFAULT_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_INIT -!> - @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_ALLOCATE -!> - @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_PRESET -!> - @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_RUNTIME -!> - @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_TO_BE_ENCODED -!> - @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_data_type_default_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_DATA_TYPE_DEFAULT_MOD' -MODULE GRIB2_SECTION1_DATA_TYPE_DEFAULT_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION1_DATA_TYPE_DEFAULT_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION1_DATA_TYPE_DEFAULT_T - - !> Default symbols visibility - PRIVATE - - !> Type definition for GRIB2 Section 4 time configuration handler. - INTEGER(KIND=JPIB_K) :: TYPE_OF_PROCESSED_DATA_=UNDEF_PARAM_E - - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION1_DATA_TYPE_DEFAULT_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION1_DATA_TYPE_DEFAULT_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION1_DATA_TYPE_DEFAULT_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION1_DATA_TYPE_DEFAULT_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION1_DATA_TYPE_DEFAULT_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION1_DATA_TYPE_DEFAULT_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_DATA_TYPE_DEFAULT_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_INIT -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_PRESET -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_DATA_TYPE_DEFAULT_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_DATA_TYPE_DEFAULT_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_DATA_TYPE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TYPE_OF_PROCESSED_DATA - INTEGER(KIND=JPIB_K) :: IO_ERROR - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALUD_BITS_PER_VALUE=2_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'DATA_TYPE' - THIS%KIND_ = 'DEFAULT' - - ! Logging informations - PP_LOG_TODO( 'Cfg initialization of GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//'('//TRIM(ADJUSTL(THIS%KIND_))//')' ) - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'type-of-processed-data', HAS_TYPE_OF_PROCESSED_DATA, HOOKS ) - - ! Read the subCentre - IF (HAS_TYPE_OF_PROCESSED_DATA) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'type-of-processed-data', THIS%TYPE_OF_PROCESSED_DATA_, HOOKS ) - ELSE - THIS%TYPE_OF_PROCESSED_DATA_ = UNDEF_PARAM_E - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_DATA_TYPE_DEFAULT_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_DATA_TYPE_DEFAULT_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_INIT -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_PRESET -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_DATA_TYPE_DEFAULT_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_DATA_TYPE_DEFAULT_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PROCESSED_DATA_FC_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PROCESSED_DATA_AN_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PROCESSED_DATA_CF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PROCESSED_DATA_PF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PROCESSED_DATA_SO_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FC_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_AN_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_CF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_PF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SSD_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_GSD_E - USE :: ENUMERATORS_MOD, ONLY: CLASS_D1_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_DATA_TYPE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_INFO( 'Allocate GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_)) ) - - ! Initialise the section - IF ( PAR%TYPE_OF_PROCESSED_DATA .NE. UNDEF_PARAM_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', PAR%TYPE_OF_PROCESSED_DATA ) - ELSE IF ( THIS%TYPE_OF_PROCESSED_DATA_ .NE. UNDEF_PARAM_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', THIS%TYPE_OF_PROCESSED_DATA_ ) - ELSE IF ( MSG%TYPE .NE. UNDEF_PARAM_E ) THEN - ! TODO MIVAL: this check is very naive, it should be replaced with a more complex one - SELECT CASE ( MSG%TYPE ) - CASE ( TYPE_FC_E ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', TYPE_OF_PROCESSED_DATA_FC_E ) - CASE ( TYPE_AN_E ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', TYPE_OF_PROCESSED_DATA_FC_E ) - CASE ( TYPE_CF_E ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', TYPE_OF_PROCESSED_DATA_CF_E ) - CASE ( TYPE_PF_E ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', TYPE_OF_PROCESSED_DATA_PF_E ) - CASE ( TYPE_SSD_E, TYPE_GSD_E ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', TYPE_OF_PROCESSED_DATA_SO_E ) - CASE DEFAULT - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', 255_JPIB_K ) - END SELECT - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', 255_JPIB_K ) - ENDIF - - ! Set the production status of processed data (N.B. This part allocates section2!!!!!!) - IF ( MSG%CLASS .EQ. CLASS_D1_E ) THEN - ! Allocate the section2 for destine (12 for Climate DT, 13 for testing) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productionStatusOfProcessedData', 12_JPIB_K ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_DATA_TYPE_DEFAULT_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_DATA_TYPE_DEFAULT_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_PRESET -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_INIT -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_DATA_TYPE_DEFAULT_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_DATA_TYPE_DEFAULT_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_DATA_TYPE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productionStatusOfProcessedData', THIS%PRODUCTION_STATUS_OF_PROCESSED_DATA_ ) - ! IF ( PAR%TYPE_OF_PROCESSED_DATA .NE. UNDEF_PARAM_E ) THEN - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', PAR%TYPE_OF_PROCESSED_DATA ) - ! ELSE - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', THIS%TYPE_OF_PROCESSED_DATA_ ) - ! ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'preset not implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_DATA_TYPE_DEFAULT_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_DATA_TYPE_DEFAULT_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_INIT -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_PRESET -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_DATA_TYPE_DEFAULT_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_DATA_TYPE_DEFAULT_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PROCESSED_DATA_FC_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PROCESSED_DATA_AN_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PROCESSED_DATA_CF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PROCESSED_DATA_PF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PROCESSED_DATA_SO_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FC_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_AN_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_CF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_PF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SSD_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_GSD_E - USE :: ENUMERATORS_MOD, ONLY: CLASS_AI_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_DATA_TYPE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - IF ( PAR%TYPE_OF_PROCESSED_DATA .NE. UNDEF_PARAM_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', PAR%TYPE_OF_PROCESSED_DATA ) - ELSE IF ( THIS%TYPE_OF_PROCESSED_DATA_ .NE. UNDEF_PARAM_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', THIS%TYPE_OF_PROCESSED_DATA_ ) - ELSE IF ( MSG%TYPE .NE. UNDEF_PARAM_E ) THEN - ! TODO MIVAL: this check is very naive, it should be replaced with a more complex one - SELECT CASE ( MSG%CLASS ) - CASE ( CLASS_AI_E ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', 10_JPIB_K ) - CASE DEFAULT - SELECT CASE ( MSG%TYPE ) - CASE ( TYPE_FC_E ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', TYPE_OF_PROCESSED_DATA_FC_E ) - CASE ( TYPE_AN_E ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', TYPE_OF_PROCESSED_DATA_FC_E ) - CASE ( TYPE_CF_E ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', TYPE_OF_PROCESSED_DATA_CF_E ) - CASE ( TYPE_PF_E ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', TYPE_OF_PROCESSED_DATA_PF_E ) - CASE ( TYPE_SSD_E, TYPE_GSD_E ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', TYPE_OF_PROCESSED_DATA_SO_E ) - CASE DEFAULT - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', 255_JPIB_K ) - END SELECT - END SELECT - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfProcessedData', 255_JPIB_K ) - ENDIF - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_DATA_TYPE_DEFAULT_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_DATA_TYPE_DEFAULT_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_INIT -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_PRESET -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_DATA_TYPE_DEFAULT_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_DATA_TYPE_DEFAULT_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_DATA_TYPE_DEFAULT_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_DATA_TYPE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_DATA_TYPE_DEFAULT_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -END MODULE GRIB2_SECTION1_DATA_TYPE_DEFAULT_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/grib2_section1_data_type_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/grib2_section1_data_type_factory_mod.F90 deleted file mode 100644 index 61b2bd241..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-data-type-configurator/grib2_section1_data_type_factory_mod.F90 +++ /dev/null @@ -1,587 +0,0 @@ -!> -!> @file grib2_section1_data_type_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> The `GRIB2_SECTION1_DATA_TYPE_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Param Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_DATA_TYPE_CONFIGURATOR_000_MOD::GRIB2_DATA_TYPE_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_data_type_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_DATA_TYPE_FACTORY_MOD' -MODULE GRIB2_SECTION1_DATA_TYPE_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the data_type_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: DATA_TYPE_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_DATA_TYPE_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_DATA_TYPE_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_DATA_TYPE_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_DATA_TYPE_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Param Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_DATA_TYPE_CONFIGURATOR_000_T`) -!> to the `GRIB2_DATA_TYPE_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_DATA_TYPE_CONFIGURATOR The GRIB2 Param Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Param Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_DATA_TYPE_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_DATA_TYPE_CONFIGURATOR_000_MOD::GRIB2_DATA_TYPE_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_DATA_TYPE_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_DATA_TYPE_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_DATA_TYPE_CONFIGURATOR_CFG( GRIB2_DATA_TYPE_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION1_DATA_TYPE_DEFAULT_MOD, ONLY: GRIB2_SECTION1_DATA_TYPE_DEFAULT_T - USE :: GRIB2_SECTION1_DATA_TYPE_CUSTOM_MOD, ONLY: GRIB2_SECTION1_DATA_TYPE_CUSTOM_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_DATA_TYPE_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_DATA_TYPE_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION1_DATA_TYPE_DEFAULT_T::GRIB2_DATA_TYPE_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION1_DATA_TYPE_CUSTOM_T::GRIB2_DATA_TYPE_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_DATA_TYPE_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get data_type_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown data_type_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating data_type_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing data_type_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_DATA_TYPE_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Param Configurator structure. -!> -!> This function takes a GRIB2 Param Configurator object (`GRIB2_DATA_TYPE_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_DATA_TYPE_CONFIGURATOR The GRIB2 Param Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_DATA_TYPE_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_DATA_TYPE_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_DATA_TYPE_CONFIGURATOR( GRIB2_DATA_TYPE_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_DATA_TYPE_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_DATA_TYPE_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_DATA_TYPE_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_DATA_TYPE_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data_type_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating data_type_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing data_type_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_DATA_TYPE_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Param Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [out] DATA_TYPE_CONFIGURATOR_TYPE Identifier of the data_type_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_DATA_TYPE_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_DATA_TYPE_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_DATA_TYPE_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, DATA_TYPE_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: DATA_TYPE_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CDATA_TYPE_CONFIGURATOR_TYPE - LOGICAL :: HAS_DATA_TYPE_CONFIGURATOR - LOGICAL :: DATA_TYPE_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - DATA_TYPE_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the DATA_TYPE_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, DATA_TYPE_CONFIGURATOR_KEY, HAS_DATA_TYPE_CONFIGURATOR, HOOKS ) - - !> Read the DATA_TYPE_CONFIGURATOR template number - IF ( HAS_DATA_TYPE_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, DATA_TYPE_CONFIGURATOR_KEY, CDATA_TYPE_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CDATA_TYPE_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CDATA_TYPE_CONFIGURATOR_TYPE, DATA_TYPE_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( DATA_TYPE_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CDATA_TYPE_CONFIGURATOR_TYPE, DATA_TYPE_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CDATA_TYPE_CONFIGURATOR_TYPE) - CASE ( 'default' ) - DATA_TYPE_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ( 'custom' ) - DATA_TYPE_CONFIGURATOR_TYPE = 1_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CDATA_TYPE_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'DATA_TYPE_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating DATA_TYPE_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_DATA_TYPE_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION1_DATA_TYPE_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/CMakeLists.txt deleted file mode 100644 index 6f66e1d3d..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION1_ORIGIN_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section1_ORIGIN sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION1_ORIGIN_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION1_ORIGIN_DIR}/grib2_section1_origin_default_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION1_ORIGIN_DIR}/grib2_section1_origin_custom_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION1_ORIGIN_DIR}/grib2_section1_origin_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION1_ORIGIN_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION1_ORIGIN_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION1_ORIGIN_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/grib2_section1_origin_custom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/grib2_section1_origin_custom_mod.F90 deleted file mode 100644 index 215f8ea6c..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/grib2_section1_origin_custom_mod.F90 +++ /dev/null @@ -1,901 +0,0 @@ -!> -!> @file grib2_section1_origin_custom_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION1_ORIGIN_CUSTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION1_ORIGIN_CUSTOM_INIT -!> - @see GRIB2_SECTION1_ORIGIN_CUSTOM_ALLOCATE -!> - @see GRIB2_SECTION1_ORIGIN_CUSTOM_PRESET -!> - @see GRIB2_SECTION1_ORIGIN_CUSTOM_RUNTIME -!> - @see GRIB2_SECTION1_ORIGIN_CUSTOM_TO_BE_ENCODED -!> - @see GRIB2_SECTION1_ORIGIN_CUSTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_origin_custom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_ORIGIN_CUSTOM_MOD' -MODULE GRIB2_SECTION1_ORIGIN_CUSTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION1_ORIGIN_CUSTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION1_ORIGIN_CUSTOM_T - - !> Default symbols visibility - PRIVATE - - INTEGER(KIND=JPIB_K) :: SUB_CENTRE_ = 0_JPIB_K - CHARACTER(LEN=4) :: CENTRE_=REPEAT('*',4) - - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION1_ORIGIN_CUSTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION1_ORIGIN_CUSTOM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION1_ORIGIN_CUSTOM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION1_ORIGIN_CUSTOM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION1_ORIGIN_CUSTOM_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION1_ORIGIN_CUSTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_ORIGIN_CUSTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_INIT -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_PRESET -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_ORIGIN_CUSTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_ORIGIN_CUSTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_ORIGIN_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_SUB_CENTRE - LOGICAL :: HAS_CENTRE - CHARACTER(LEN=:), ALLOCATABLE :: CENTRE - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED_AFTER_READING=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_LENGTH_AFTER_READING=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATE_FAILED=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'ORIGIN' - THIS%KIND_ = 'CUSTOM' - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'sub-centre', HAS_SUB_CENTRE, HOOKS ) - - ! Read the subCentre - IF (HAS_SUB_CENTRE) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'sub-centre', THIS%SUB_CENTRE_, HOOKS ) - ELSE - THIS%SUB_CENTRE_ = 0_JPIB_K - END IF - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'centre', HAS_CENTRE, HOOKS ) - - ! Read the subCentre - IF (HAS_CENTRE) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_STRING( CFG, 'centre', CENTRE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CENTRE), ERRFLAG_NOT_ASSOCIATED_AFTER_READING ) - PP_DEBUG_CRITICAL_COND_THROW( LEN_TRIM(CENTRE) .NE. 4, ERRFLAG_WRONG_LENGTH_AFTER_READING ) - THIS%CENTRE_ = TRIM(ADJUSTL(CENTRE)) - DEALLOCATE( CENTRE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS .NE. 0, ERRFLAG_DEALLOCATE_FAILED ) - ELSE - THIS%CENTRE_ = 'ecmf' - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE ( ERRFLAG_NOT_ASSOCIATED_AFTER_READING ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'not associated after reading' ) - CASE ( ERRFLAG_WRONG_LENGTH_AFTER_READING ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'wrong length after reading' ) - CASE ( ERRFLAG_DEALLOCATE_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'deallocation failed' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_ORIGIN_CUSTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_ORIGIN_CUSTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_INIT -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_PRESET -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_ORIGIN_CUSTOM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_ORIGIN_CUSTOM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_ORIGIN_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_ORIGIN_CUSTOM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_ORIGIN_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_PRESET -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_INIT -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_ORIGIN_CUSTOM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_ORIGIN_CUSTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_ORIGIN_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'center', THIS%CENTRE_ ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'subCenter', THIS%SUB_CENTRE_ ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_ORIGIN_CUSTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_ORIGIN_CUSTOM_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_INIT -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_PRESET -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_ORIGIN_CUSTOM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_ORIGIN_CUSTOM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_ORIGIN_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_ORIGIN_CUSTOM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_ORIGIN_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_INIT -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_PRESET -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_ORIGIN_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_ORIGIN_CUSTOM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_ORIGIN_CUSTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_ORIGIN_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_ORIGIN_CUSTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -END MODULE GRIB2_SECTION1_ORIGIN_CUSTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/grib2_section1_origin_default_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/grib2_section1_origin_default_mod.F90 deleted file mode 100644 index 9d463e2ae..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/grib2_section1_origin_default_mod.F90 +++ /dev/null @@ -1,868 +0,0 @@ -!> -!> @file grib2_section1_origin_default_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION1_ORIGIN_DEFAULT_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION1_ORIGIN_DEFAULT_INIT -!> - @see GRIB2_SECTION1_ORIGIN_DEFAULT_ALLOCATE -!> - @see GRIB2_SECTION1_ORIGIN_DEFAULT_PRESET -!> - @see GRIB2_SECTION1_ORIGIN_DEFAULT_RUNTIME -!> - @see GRIB2_SECTION1_ORIGIN_DEFAULT_TO_BE_ENCODED -!> - @see GRIB2_SECTION1_ORIGIN_DEFAULT_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_origin_default_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_ORIGIN_DEFAULT_MOD' -MODULE GRIB2_SECTION1_ORIGIN_DEFAULT_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION1_ORIGIN_DEFAULT_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION1_ORIGIN_DEFAULT_T - - !> Default symbols visibility - PRIVATE - - INTEGER(KIND=JPIB_K) :: SUB_CENTRE_ = 0_JPIB_K - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION1_ORIGIN_DEFAULT_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION1_ORIGIN_DEFAULT_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION1_ORIGIN_DEFAULT_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION1_ORIGIN_DEFAULT_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION1_ORIGIN_DEFAULT_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION1_ORIGIN_DEFAULT_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_ORIGIN_DEFAULT_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_INIT -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_PRESET -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_ORIGIN_DEFAULT_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_ORIGIN_DEFAULT_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_ORIGIN_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_SUB_CENTRE - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'ORIGIN' - THIS%KIND_ = 'DEFAULT' - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'sub-centre', HAS_SUB_CENTRE, HOOKS ) - - ! Read the subCentre - IF (HAS_SUB_CENTRE) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'sub-centre', THIS%SUB_CENTRE_, HOOKS ) - ELSE - THIS%SUB_CENTRE_ = 0_JPIB_K - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_ORIGIN_DEFAULT_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_ORIGIN_DEFAULT_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_INIT -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_PRESET -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_ORIGIN_DEFAULT_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_ORIGIN_DEFAULT_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: CONSTANTS_MOD, ONLY: RAD2DEG - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_ORIGIN_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_ORIGIN_DEFAULT_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_ORIGIN_DEFAULT_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_PRESET -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_INIT -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_ORIGIN_DEFAULT_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_ORIGIN_DEFAULT_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_ORIGIN_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'centre', MSG%ORIGIN ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'subCentre', THIS%SUB_CENTRE_ ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_ORIGIN_DEFAULT_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_ORIGIN_DEFAULT_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_INIT -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_PRESET -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_ORIGIN_DEFAULT_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_ORIGIN_DEFAULT_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_ORIGIN_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_ORIGIN_DEFAULT_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_ORIGIN_DEFAULT_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_INIT -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_PRESET -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_ORIGIN_DEFAULT_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_ORIGIN_DEFAULT_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_ORIGIN_DEFAULT_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_ORIGIN_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_ORIGIN_DEFAULT_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION1_ORIGIN_DEFAULT_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/grib2_section1_origin_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/grib2_section1_origin_factory_mod.F90 deleted file mode 100644 index 8099f9e4a..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-origin-configurator/grib2_section1_origin_factory_mod.F90 +++ /dev/null @@ -1,587 +0,0 @@ -!> -!> @file grib2_section1_origin_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> The `GRIB2_SECTION1_ORIGIN_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Param Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_ORIGIN_CONFIGURATOR_000_MOD::GRIB2_ORIGIN_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_origin_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_ORIGIN_FACTORY_MOD' -MODULE GRIB2_SECTION1_ORIGIN_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the origin_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: ORIGIN_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_ORIGIN_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_ORIGIN_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_ORIGIN_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_ORIGIN_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Param Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_ORIGIN_CONFIGURATOR_000_T`) -!> to the `GRIB2_ORIGIN_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_ORIGIN_CONFIGURATOR The GRIB2 Param Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Param Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_ORIGIN_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_ORIGIN_CONFIGURATOR_000_MOD::GRIB2_ORIGIN_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_ORIGIN_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_ORIGIN_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_ORIGIN_CONFIGURATOR_CFG( GRIB2_ORIGIN_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION1_ORIGIN_DEFAULT_MOD, ONLY: GRIB2_SECTION1_ORIGIN_DEFAULT_T - USE :: GRIB2_SECTION1_ORIGIN_CUSTOM_MOD, ONLY: GRIB2_SECTION1_ORIGIN_CUSTOM_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_ORIGIN_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_ORIGIN_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION1_ORIGIN_DEFAULT_T::GRIB2_ORIGIN_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION1_ORIGIN_CUSTOM_T::GRIB2_ORIGIN_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_ORIGIN_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get origin_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown origin_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating origin_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing origin_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_ORIGIN_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Param Configurator structure. -!> -!> This function takes a GRIB2 Param Configurator object (`GRIB2_ORIGIN_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_ORIGIN_CONFIGURATOR The GRIB2 Param Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_ORIGIN_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_ORIGIN_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_ORIGIN_CONFIGURATOR( GRIB2_ORIGIN_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_ORIGIN_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_ORIGIN_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_ORIGIN_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_ORIGIN_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'origin_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating origin_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing origin_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_ORIGIN_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Param Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [out] ORIGIN_CONFIGURATOR_TYPE Identifier of the origin_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_ORIGIN_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_ORIGIN_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_ORIGIN_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, ORIGIN_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ORIGIN_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CORIGIN_CONFIGURATOR_TYPE - LOGICAL :: HAS_ORIGIN_CONFIGURATOR - LOGICAL :: ORIGIN_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - ORIGIN_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the ORIGIN_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, ORIGIN_CONFIGURATOR_KEY, HAS_ORIGIN_CONFIGURATOR, HOOKS ) - - !> Read the ORIGIN_CONFIGURATOR template number - IF ( HAS_ORIGIN_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, ORIGIN_CONFIGURATOR_KEY, CORIGIN_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CORIGIN_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CORIGIN_CONFIGURATOR_TYPE, ORIGIN_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( ORIGIN_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CORIGIN_CONFIGURATOR_TYPE, ORIGIN_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CORIGIN_CONFIGURATOR_TYPE) - CASE ( 'default' ) - ORIGIN_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ( 'custom' ) - ORIGIN_CONFIGURATOR_TYPE = 1_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CORIGIN_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ORIGIN_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating ORIGIN_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_ORIGIN_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION1_ORIGIN_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/CMakeLists.txt deleted file mode 100644 index da47e4851..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION1_REFERENCE_TIME_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section1_REFERENCE_TIME sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION1_REFERENCE_TIME_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION1_REFERENCE_TIME_DIR}/grib2_section1_reference_time_default_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION1_REFERENCE_TIME_DIR}/grib2_section1_reference_time_custom_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION1_REFERENCE_TIME_DIR}/grib2_section1_reference_time_factory_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION1_REFERENCE_TIME_DIR}/grib2_significance_of_reference_time_map_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION1_REFERENCE_TIME_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION1_REFERENCE_TIME_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION1_REFERENCE_TIME_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_section1_reference_time_custom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_section1_reference_time_custom_mod.F90 deleted file mode 100644 index 01bff0909..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_section1_reference_time_custom_mod.F90 +++ /dev/null @@ -1,929 +0,0 @@ -!> -!> @file grib2_section1_reference_time_custom_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_INIT -!> - @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_ALLOCATE -!> - @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_PRESET -!> - @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_RUNTIME -!> - @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_TO_BE_ENCODED -!> - @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_reference_time_custom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_MOD' -MODULE GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T - - !> Default symbols visibility - PRIVATE - - INTEGER(KIND=JPIB_K) :: DATE_=0_JPIB_K - INTEGER(KIND=JPIB_K) :: TIME_=0_JPIB_K - INTEGER(KIND=JPIB_K) :: SIGNIFICANCE_OF_REFERENCE_TIME_=0_JPIB_K - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_INIT -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_PRESET -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_DATE - LOGICAL :: HAS_TIME - LOGICAL :: HAS_SIGNIFICANCE_OF_REFERENCE_TIME - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'REFERENCE_TIME' - THIS%KIND_ = 'CUSTOM' - - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'date', HAS_DATE, HOOKS ) - - ! Read the subCentre - IF (HAS_DATE) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'date', THIS%DATE_, HOOKS ) - ELSE - THIS%DATE_ = 33_JPIB_K - END IF - - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'time', HAS_TIME, HOOKS ) - - ! Read the subCentre - IF (HAS_TIME) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'time', THIS%TIME_, HOOKS ) - ELSE - THIS%TIME_ = 0_JPIB_K - END IF - - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'significance-of-reference-time', HAS_SIGNIFICANCE_OF_REFERENCE_TIME, HOOKS ) - - ! Read the subCentre - IF (HAS_SIGNIFICANCE_OF_REFERENCE_TIME) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'significance-of-reference-time', THIS%SIGNIFICANCE_OF_REFERENCE_TIME_, HOOKS ) - ELSE - THIS%SIGNIFICANCE_OF_REFERENCE_TIME_ = 0_JPIB_K - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_INIT -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_PRESET -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_PRESET -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_INIT -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_INIT -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_PRESET -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - USE :: ENUMERATORS_MOD, ONLY: TYPE_FC_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_AN_E - USE :: DATETIME_UTILS_MOD, ONLY: YYYYMMDD_HHMMSS_TO_DATETIME - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K), DIMENSION(6) :: DATE_TIME - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNHANDLED_CASE=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_DATETIME=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Set the time - IF ( MSG%TYPE .EQ. TYPE_FC_E .AND. MSG%STEP .GT. 0 ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'significanceOfReferenceTime', THIS%SIGNIFICANCE_OF_REFERENCE_TIME_ ) - ELSEIF ( (MSG%TYPE .EQ. TYPE_FC_E .AND. MSG%STEP .EQ. 0) .OR. MSG%TYPE .EQ. TYPE_AN_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'significanceOfReferenceTime', THIS%SIGNIFICANCE_OF_REFERENCE_TIME_ ) - ELSE - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNHANDLED_CASE ) - ENDIF - - ! When I generate the message (mars part of the metdatada), I need to take care of setting the date and time - ! the proper way. Data and time represent the start of the forecast in "forecast type" (when step is greater than 0), - ! or the current time in "analysis type". - - - ! Unpack date time - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_DATETIME) YYYYMMDD_HHMMSS_TO_DATETIME( THIS%DATE_, THIS%TIME_, DATE_TIME, HOOKS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'year', DATE_TIME(1) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'month', DATE_TIME(2) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'day', DATE_TIME(3) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'hour', DATE_TIME(4) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'minute', DATE_TIME(5) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'second', DATE_TIME(6) ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_UNHANDLED_CASE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled case' ) - CASE ( ERRFLAG_UNABLE_TO_CONVERT_DATETIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert date time' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_INIT -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_PRESET -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_section1_reference_time_default_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_section1_reference_time_default_mod.F90 deleted file mode 100644 index e8127fd59..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_section1_reference_time_default_mod.F90 +++ /dev/null @@ -1,911 +0,0 @@ -!> -!> @file grib2_section1_reference_time_default_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_INIT -!> - @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_ALLOCATE -!> - @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_PRESET -!> - @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_RUNTIME -!> - @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_TO_BE_ENCODED -!> - @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_reference_time_default_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_MOD' -MODULE GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_INIT -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_PRESET -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'REFERENCE_TIME' - THIS%KIND_ = 'DEFAULT' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_INIT -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_PRESET -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: CONSTANTS_MOD, ONLY: RAD2DEG - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_PRESET -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_INIT -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Set date and time - ! TODO: May change depending on time - IF (MSG%HDATE.NE.UNDEF_PARAM_E) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'date', MSG%HDATE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'time', 0_JPIB_K ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'date', MSG%DATE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'time', MSG%TIME/100 ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_INIT -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_PRESET -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB2_SIGNIFICANCEOFREFERENCETIME_MOD, ONLY: SIGNIFICANCEOFREFERENCETIME_MAP - - USE :: ENUMERATORS_MOD, ONLY: TYPE_FC_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_AN_E - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: DATETIME_UTILS_MOD, ONLY: YYYYMMDD_HHMMSS_TO_DATETIME - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: SORT - INTEGER(KIND=JPIB_K), DIMENSION(6) :: DATE_TIME - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAP=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_DATETIME=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Set the time - !! IF ( MSG%TYPE .EQ. TYPE_FC_E .AND. MSG%STEP .GT. 0 ) THEN - !! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'significanceOfReferenceTime', 1_JPIB_K ) - !! ELSEIF ( (MSG%TYPE .EQ. TYPE_FC_E .AND. MSG%STEP .EQ. 0) .OR. MSG%TYPE .EQ. TYPE_AN_E ) THEN - !! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'significanceOfReferenceTime', 0_JPIB_K ) - !! ELSE - !! PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNHANDLED_CASE ) - !! ENDIF - - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAP) SIGNIFICANCEOFREFERENCETIME_MAP( MSG, PAR, SORT, HOOKS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'significanceOfReferenceTime', SORT ) - - ! IF ( MSG%TYPE .EQ. TYPE_FC_E ) THEN - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'significanceOfReferenceTime', 1_JPIB_K ) - ! ELSEIF ( MSG%TYPE .EQ. TYPE_AN_E ) THEN - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'significanceOfReferenceTime', 0_JPIB_K ) - ! ELSE - ! PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNHANDLED_CASE ) - ! ENDIF - - ! When I generate the message (mars part of the metdatada), I need to take care of setting the date and time - ! the proper way. Data and time represent the start of the forecast in "forecast type" (when step is greater than 0), - ! or the current time in "analysis type". - - - ! Unpack date time - if(MSG%HDATE.NE.UNDEF_PARAM_E) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_DATETIME) YYYYMMDD_HHMMSS_TO_DATETIME( MSG%HDATE, 0_JPIB_K, DATE_TIME, HOOKS ) - ELSE - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_DATETIME) YYYYMMDD_HHMMSS_TO_DATETIME( MSG%DATE, MSG%TIME, DATE_TIME, HOOKS ) - ENDIF - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'year', DATE_TIME(1) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'month', DATE_TIME(2) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'day', DATE_TIME(3) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'hour', DATE_TIME(4) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'minute', DATE_TIME(5) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'second', DATE_TIME(6) ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_UNABLE_TO_MAP ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to map significanceOfReferenceTime' ) - CASE ( ERRFLAG_UNABLE_TO_CONVERT_DATETIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert date time' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_INIT -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_PRESET -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_section1_reference_time_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_section1_reference_time_factory_mod.F90 deleted file mode 100644 index 2d1dae15b..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_section1_reference_time_factory_mod.F90 +++ /dev/null @@ -1,587 +0,0 @@ -!> -!> @file grib2_section1_reference_time_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> The `GRIB2_SECTION1_REFERENCE_TIME_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Param Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_REFERENCE_TIME_CONFIGURATOR_000_MOD::GRIB2_REFERENCE_TIME_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_reference_time_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_REFERENCE_TIME_FACTORY_MOD' -MODULE GRIB2_SECTION1_REFERENCE_TIME_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the reference_time_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: REFERENCE_TIME_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_REFERENCE_TIME_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_REFERENCE_TIME_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_REFERENCE_TIME_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_REFERENCE_TIME_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Param Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_REFERENCE_TIME_CONFIGURATOR_000_T`) -!> to the `GRIB2_REFERENCE_TIME_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_REFERENCE_TIME_CONFIGURATOR The GRIB2 Param Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Param Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_REFERENCE_TIME_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_REFERENCE_TIME_CONFIGURATOR_000_MOD::GRIB2_REFERENCE_TIME_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_REFERENCE_TIME_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_REFERENCE_TIME_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_REFERENCE_TIME_CONFIGURATOR_CFG( GRIB2_REFERENCE_TIME_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_MOD, ONLY: GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T - USE :: GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_MOD, ONLY: GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_REFERENCE_TIME_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_REFERENCE_TIME_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION1_REFERENCE_TIME_DEFAULT_T::GRIB2_REFERENCE_TIME_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION1_REFERENCE_TIME_CUSTOM_T::GRIB2_REFERENCE_TIME_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_REFERENCE_TIME_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get reference_time_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown reference_time_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating reference_time_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing reference_time_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_REFERENCE_TIME_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Param Configurator structure. -!> -!> This function takes a GRIB2 Param Configurator object (`GRIB2_REFERENCE_TIME_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_REFERENCE_TIME_CONFIGURATOR The GRIB2 Param Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_REFERENCE_TIME_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_REFERENCE_TIME_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_REFERENCE_TIME_CONFIGURATOR( GRIB2_REFERENCE_TIME_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_REFERENCE_TIME_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_REFERENCE_TIME_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_REFERENCE_TIME_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_REFERENCE_TIME_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'reference_time_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating reference_time_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing reference_time_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_REFERENCE_TIME_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Param Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [out] REFERENCE_TIME_CONFIGURATOR_TYPE Identifier of the reference_time_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_REFERENCE_TIME_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_REFERENCE_TIME_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_REFERENCE_TIME_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, REFERENCE_TIME_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: REFERENCE_TIME_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CREFERENCE_TIME_CONFIGURATOR_TYPE - LOGICAL :: HAS_REFERENCE_TIME_CONFIGURATOR - LOGICAL :: REFERENCE_TIME_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - REFERENCE_TIME_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the REFERENCE_TIME_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, REFERENCE_TIME_CONFIGURATOR_KEY, HAS_REFERENCE_TIME_CONFIGURATOR, HOOKS ) - - !> Read the REFERENCE_TIME_CONFIGURATOR template number - IF ( HAS_REFERENCE_TIME_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, REFERENCE_TIME_CONFIGURATOR_KEY, CREFERENCE_TIME_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CREFERENCE_TIME_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CREFERENCE_TIME_CONFIGURATOR_TYPE, REFERENCE_TIME_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( REFERENCE_TIME_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CREFERENCE_TIME_CONFIGURATOR_TYPE, REFERENCE_TIME_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CREFERENCE_TIME_CONFIGURATOR_TYPE) - CASE ( 'default' ) - REFERENCE_TIME_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ( 'custom' ) - REFERENCE_TIME_CONFIGURATOR_TYPE = 1_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CREFERENCE_TIME_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'REFERENCE_TIME_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating REFERENCE_TIME_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_REFERENCE_TIME_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION1_REFERENCE_TIME_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_significance_of_reference_time_map_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_significance_of_reference_time_map_mod.F90 deleted file mode 100644 index 14058728d..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-reference-time-configurator/grib2_significance_of_reference_time_map_mod.F90 +++ /dev/null @@ -1,527 +0,0 @@ -!> -!> @file grib2_significanceOfReferenceTimeMap_mod.F90 -!> -!> @brief Module for mapping GRIB2 Section 1 significanceOfReferenceTime. -!> -!> -!> @author Philipp Geier -!> @date February, 2025 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_significance_of_reference_rime_map_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SIGNIFICANCEOFREFERENCETIME_MOD' -MODULE GRIB2_SIGNIFICANCEOFREFERENCETIME_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: SIGNIFICANCEOFREFERENCETIME_MAP - -CONTAINS - -!> -!> @brief Map MSG + PAR to significanceOfReferenceTime -!> -!> -!> @section interface -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [out] significanceOfReferenceTime (SORT) -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SIGNIFICANCEOFREFERENCETIME_MAP' -PP_THREAD_SAFE FUNCTION SIGNIFICANCEOFREFERENCETIME_MAP( & -& MSG, PAR, SORT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - USE :: ENUMERATORS_MOD, ONLY: TYPE_FG_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_AN_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_IA_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OI_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_3V_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_4V_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_3G_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_4G_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FC_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_CF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_PF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_EF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_EA_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_CM_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_CS_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FP_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_EM_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_ES_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FA_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_CL_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SI_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_S3_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_ED_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_TU_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_EFI_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_EFIC_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_PB_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_EP_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_BF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_CD_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_4I_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_GO_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_ME_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_PD_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_CI_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SOT_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_EME_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_IM_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SIM_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_WEM_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_WES_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_CR_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SES_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_TAEM_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_TAES_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SG_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_PA_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_ICP_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SV_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_AS_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SVAR_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_CV_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OR_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FX_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FU_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SFO_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_TPA_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_IF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FCMEAN_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FCMAX_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FCMIN_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FCSTDEV_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_HCMEAN_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SSD_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_GSD_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_GA_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_GAI_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_GBF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_PFC_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_PPM_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_GWT_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_EST_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_MPP_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OB_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FB_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_AI_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_AF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_AB_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_TF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_MFB_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OFB_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OAI_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_SFB_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FSOIFB_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_FCDFB_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - INTEGER(KIND=JPIB_K), INTENT(OUT) :: SORT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNHANDLED_CASE=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT CASE ( MSG%TYPE ) - - ! CASE( TYPE_FG_E ) - ! ! First guess - ! SORT = 1_JPIB_K - CASE( TYPE_AN_E ) - ! Analysis - SORT = 0_JPIB_K - CASE( TYPE_IA_E ) - ! Initialised analysis - SORT = 0_JPIB_K - CASE( TYPE_OI_E ) - ! Oi analysis - SORT = 0_JPIB_K - CASE( TYPE_3V_E ) - ! 3d variational analysis - SORT = 0_JPIB_K - CASE( TYPE_4V_E ) - ! 4d variational analysis - SORT = 0_JPIB_K - CASE( TYPE_3G_E ) - ! 3d variational gradients - SORT = 0_JPIB_K - CASE( TYPE_4G_E ) - ! 4d variational gradients - SORT = 0_JPIB_K - CASE( TYPE_FC_E ) - ! Forecast - SORT = 1_JPIB_K - CASE( TYPE_CF_E ) - ! Control forecast - SORT = 1_JPIB_K - CASE( TYPE_PF_E ) - ! Perturbed forecast - SORT = 1_JPIB_K - ! CASE( TYPE_EF_E ) - ! ! Errors in first guess - ! SORT = 1_JPIB_K - CASE( TYPE_EA_E ) - ! Errors in analysis - SORT = 0_JPIB_K - ! CASE( TYPE_CM_E ) - ! ! Cluster means - ! SORT = 1_JPIB_K - ! CASE( TYPE_CS_E ) - ! ! Cluster std deviations - ! SORT = 1_JPIB_K - CASE( TYPE_FP_E ) - ! Forecast probability - SORT = 1_JPIB_K - CASE( TYPE_EM_E ) - ! Ensemble mean - SORT = 1_JPIB_K - CASE( TYPE_ES_E ) - ! Ensemble standard deviation - SORT = 1_JPIB_K - CASE( TYPE_FA_E ) - ! Forecast accumulation - SORT = 1_JPIB_K - ! CASE( TYPE_CL_E ) - ! ! Climatology - ! SORT = 1_JPIB_K - ! CASE( TYPE_SI_E ) - ! ! Climate simulation - ! SORT = 1_JPIB_K - ! CASE( TYPE_S3_E ) - ! ! Climate 30 days simulation - ! SORT = 1_JPIB_K - ! CASE( TYPE_ED_E ) - ! ! Empirical distribution - ! SORT = 1_JPIB_K - ! CASE( TYPE_TU_E ) - ! ! Tubes - ! SORT = 1_JPIB_K - ! CASE( TYPE_FF_E ) - ! ! Flux forcing realtime - ! SORT = 1_JPIB_K - ! CASE( TYPE_OF_E ) - ! ! Ocean forward - ! SORT = 1_JPIB_K - CASE( TYPE_EFI_E ) - ! Extreme forecast index - SORT = 1_JPIB_K - CASE( TYPE_EFIC_E ) - ! Extreme forecast index control - SORT = 1_JPIB_K - ! CASE( TYPE_PB_E ) - ! ! Probability boundaries - ! SORT = 1_JPIB_K - ! CASE( TYPE_EP_E ) - ! ! Event probability - ! SORT = 1_JPIB_K - CASE( TYPE_BF_E ) - ! Bias-corrected forecast - SORT = 1_JPIB_K - CASE( TYPE_CD_E ) - ! Climate distribution - SORT = 1_JPIB_K - CASE( TYPE_4I_E ) - ! 4D analysis increments - SORT = 0_JPIB_K - ! CASE( TYPE_GO_E ) - ! ! Gridded observations - ! SORT = 1_JPIB_K - ! CASE( TYPE_ME_E ) - ! ! Model errors - ! SORT = 1_JPIB_K - ! CASE( TYPE_PD_E ) - ! ! Probability distribution - ! SORT = 1_JPIB_K - ! CASE( TYPE_CI_E ) - ! ! Cluster information - ! SORT = 1_JPIB_K - ! CASE( TYPE_SOT_E ) - ! ! Shift of Tail - ! SORT = 1_JPIB_K - ! CASE( TYPE_EME_E ) - ! ! Ensemble data assimilation model errors - ! SORT = 1_JPIB_K - ! CASE( TYPE_IM_E ) - ! ! Images - ! SORT = 1_JPIB_K - ! CASE( TYPE_SIM_E ) - ! ! Simulated images - ! SORT = 1_JPIB_K - CASE( TYPE_WEM_E ) - ! Weighted ensemble mean - SORT = 1_JPIB_K - CASE( TYPE_WES_E ) - ! Weighted ensemble standard deviation - SORT = 1_JPIB_K - ! CASE( TYPE_CR_E ) - ! ! Cluster representative - ! SORT = 1_JPIB_K - CASE( TYPE_SES_E ) - ! Scaled ensemble standard deviation - SORT = 1_JPIB_K - CASE( TYPE_TAEM_E ) - ! Time average ensemble mean - SORT = 1_JPIB_K - CASE( TYPE_TAES_E ) - ! Time average ensemble standard deviation - SORT = 1_JPIB_K - CASE( TYPE_SG_E ) - ! Sensitivity gradient - SORT = 1_JPIB_K - CASE( TYPE_SF_E ) - ! Sensitivity forecast - SORT = 1_JPIB_K - CASE( TYPE_PA_E ) - ! Perturbed analysis - SORT = 0_JPIB_K - ! CASE( TYPE_ICP_E ) - ! ! Initial condition perturbation - ! SORT = 1_JPIB_K - ! CASE( TYPE_SV_E ) - ! ! Singular vector - ! SORT = 1_JPIB_K - ! CASE( TYPE_AS_E ) - ! ! Adjoint singular vector - ! SORT = 1_JPIB_K - ! CASE( TYPE_SVAR_E ) - ! ! Signal variance - ! SORT = 1_JPIB_K - ! CASE( TYPE_CV_E ) - ! ! Calibration/Validation forecast - ! SORT = 1_JPIB_K - ! CASE( TYPE_OR_E ) - ! ! Ocean reanalysis - ! SORT = 1_JPIB_K - ! CASE( TYPE_FX_E ) - ! ! Flux forcing - ! SORT = 1_JPIB_K - ! CASE( TYPE_FU_E ) - ! ! Fill-up - ! SORT = 1_JPIB_K - ! CASE( TYPE_SFO_E ) - ! ! Simulations with forcing - ! SORT = 1_JPIB_K - CASE( TYPE_TPA_E ) - ! Time processed analysis - SORT = 0_JPIB_K - CASE( TYPE_IF_E ) - ! Interim forecast - SORT = 1_JPIB_K - CASE( TYPE_FCMEAN_E ) - ! Forecast mean - SORT = 1_JPIB_K - CASE( TYPE_FCMAX_E ) - ! Forecast maximum - SORT = 1_JPIB_K - CASE( TYPE_FCMIN_E ) - ! Forecast minimum - SORT = 1_JPIB_K - CASE( TYPE_FCSTDEV_E ) - ! Forecast standard deviation - SORT = 1_JPIB_K - ! CASE( TYPE_HCMEAN_E ) - ! ! Hindcast climate mean - ! SORT = 1_JPIB_K - ! CASE( TYPE_SSD_E ) - ! ! Simulated satellite data - ! SORT = 1_JPIB_K - ! CASE( TYPE_GSD_E ) - ! ! Gridded satellite data - ! SORT = 1_JPIB_K - CASE( TYPE_GA_E ) - ! GFAS analysis - SORT = 0_JPIB_K - CASE( TYPE_GAI_E ) - ! Gridded analysis input - SORT = 0_JPIB_K - ! CASE( TYPE_GBF_E ) - ! ! Bias-corrected gridbox - ! SORT = 1_JPIB_K - ! CASE( TYPE_PFC_E ) - ! ! Point values - ! SORT = 1_JPIB_K - ! CASE( TYPE_PPM_E ) - ! ! Point value metrics - ! SORT = 1_JPIB_K - ! CASE( TYPE_GWT_E ) - ! ! Weather types - ! SORT = 1_JPIB_K - ! CASE( TYPE_EST_E ) - ! ! Ensemble statistics - ! SORT = 1_JPIB_K - ! CASE( TYPE_MPP_E ) - ! ! Model physics perturbations - ! SORT = 1_JPIB_K - ! CASE( TYPE_OB_E ) - ! ! Observations - ! SORT = 1_JPIB_K - ! CASE( TYPE_FB_E ) - ! ! Feedback - ! SORT = 1_JPIB_K - CASE( TYPE_AI_E ) - ! Analysis input - SORT = 0_JPIB_K - CASE( TYPE_AF_E ) - ! Analysis feedback - SORT = 0_JPIB_K - CASE( TYPE_AB_E ) - ! Analysis bias - SORT = 0_JPIB_K - CASE( TYPE_TF_E ) - ! Trajectory forecast - SORT = 1_JPIB_K - ! CASE( TYPE_MFB_E ) - ! ! MonDB feedback - ! SORT = 1_JPIB_K - ! CASE( TYPE_OFB_E ) - ! ! ODB feedback - ! SORT = 1_JPIB_K - CASE( TYPE_OAI_E ) - ! ODB analysis input - SORT = 0_JPIB_K - ! CASE( TYPE_SFB_E ) - ! ! Summary feedback - ! SORT = 1_JPIB_K - ! CASE( TYPE_FSOIFB_E ) - ! ! Forecast sensitivity to observations impact feedback - ! SORT = 1_JPIB_K - ! CASE( TYPE_FCDFB_E ) - ! ! Forecast departures feedback - ! SORT = 1_JPIB_K - - - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNHANDLED_CASE ) - - END SELECT - - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNHANDLED_CASE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled MARS type' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SIGNIFICANCEOFREFERENCETIME_MAP -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SIGNIFICANCEOFREFERENCETIME_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/CMakeLists.txt deleted file mode 100644 index ae4e79ece..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION1_TABLES_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section1_TABLES sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION1_TABLES_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION1_TABLES_DIR}/grib2_section1_tables_default_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION1_TABLES_DIR}/grib2_section1_tables_custom_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION1_TABLES_DIR}/grib2_section1_tables_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION1_TABLES_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION1_TABLES_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION1_TABLES_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/grib2_section1_tables_custom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/grib2_section1_tables_custom_mod.F90 deleted file mode 100644 index 254cb8bd0..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/grib2_section1_tables_custom_mod.F90 +++ /dev/null @@ -1,885 +0,0 @@ -!> -!> @file grib2_section1_tables_custom_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION1_TABLES_CUSTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION1_TABLES_CUSTOM_INIT -!> - @see GRIB2_SECTION1_TABLES_CUSTOM_ALLOCATE -!> - @see GRIB2_SECTION1_TABLES_CUSTOM_PRESET -!> - @see GRIB2_SECTION1_TABLES_CUSTOM_RUNTIME -!> - @see GRIB2_SECTION1_TABLES_CUSTOM_TO_BE_ENCODED -!> - @see GRIB2_SECTION1_TABLES_CUSTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_tables_custom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_TABLES_CUSTOM_MOD' -MODULE GRIB2_SECTION1_TABLES_CUSTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION1_TABLES_CUSTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION1_TABLES_CUSTOM_T - - !> Default symbols visibility - PRIVATE - - INTEGER(KIND=JPIB_K) :: TABLES_VERSION_ = 0_JPIB_K - INTEGER(KIND=JPIB_K) :: LOCAL_TABLES_VERSION_ = 0_JPIB_K - - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION1_TABLES_CUSTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION1_TABLES_CUSTOM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION1_TABLES_CUSTOM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION1_TABLES_CUSTOM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION1_TABLES_CUSTOM_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION1_TABLES_CUSTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_TABLES_CUSTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_TABLES_CUSTOM_INIT -!> @see GRIB2_SECTION1_TABLES_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_TABLES_CUSTOM_PRESET -!> @see GRIB2_SECTION1_TABLES_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_TABLES_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_TABLES_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_TABLES_CUSTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_TABLES_CUSTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_TABLES_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TABLES_VERSION - LOGICAL :: HAS_LOCAL_TABLES_VERSION - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'TABLES' - THIS%KIND_ = 'CUSTOM' - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'tables-version', HAS_TABLES_VERSION, HOOKS ) - - ! Read the subCentre - IF (HAS_TABLES_VERSION) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'tables-version', THIS%TABLES_VERSION_, HOOKS ) - ELSE - THIS%TABLES_VERSION_ = 33_JPIB_K - END IF - - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'local-tables-version', HAS_LOCAL_TABLES_VERSION, HOOKS ) - - ! Read the subCentre - IF (HAS_LOCAL_TABLES_VERSION) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'local-tables-version', THIS%LOCAL_TABLES_VERSION_, HOOKS ) - ELSE - THIS%LOCAL_TABLES_VERSION_ = 0_JPIB_K - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_TABLES_CUSTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_TABLES_CUSTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_TABLES_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_TABLES_CUSTOM_INIT -!> @see GRIB2_SECTION1_TABLES_CUSTOM_PRESET -!> @see GRIB2_SECTION1_TABLES_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_TABLES_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_TABLES_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_TABLES_CUSTOM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_TABLES_CUSTOM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_TABLES_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_TABLES_CUSTOM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_TABLES_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_TABLES_CUSTOM_PRESET -!> @see GRIB2_SECTION1_TABLES_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_TABLES_CUSTOM_INIT -!> @see GRIB2_SECTION1_TABLES_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_TABLES_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_TABLES_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_TABLES_CUSTOM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_TABLES_CUSTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_TABLES_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'tablesVersion', THIS%TABLES_VERSION_ ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'localTablesVersion', THIS%LOCAL_TABLES_VERSION_ ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_TABLES_CUSTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_TABLES_CUSTOM_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_TABLES_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_TABLES_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_TABLES_CUSTOM_INIT -!> @see GRIB2_SECTION1_TABLES_CUSTOM_PRESET -!> @see GRIB2_SECTION1_TABLES_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION1_TABLES_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_TABLES_CUSTOM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_TABLES_CUSTOM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_TABLES_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_TABLES_CUSTOM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_TABLES_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_TABLES_CUSTOM_INIT -!> @see GRIB2_SECTION1_TABLES_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION1_TABLES_CUSTOM_PRESET -!> @see GRIB2_SECTION1_TABLES_CUSTOM_RUNTIME -!> @see GRIB2_SECTION1_TABLES_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_TABLES_CUSTOM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_TABLES_CUSTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_TABLES_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_TABLES_CUSTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -END MODULE GRIB2_SECTION1_TABLES_CUSTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/grib2_section1_tables_default_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/grib2_section1_tables_default_mod.F90 deleted file mode 100644 index f7a1215ac..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/grib2_section1_tables_default_mod.F90 +++ /dev/null @@ -1,939 +0,0 @@ -!> -!> @file grib2_section1_tables_default_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION1_TABLES_DEFAULT_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION1_TABLES_DEFAULT_INIT -!> - @see GRIB2_SECTION1_TABLES_DEFAULT_ALLOCATE -!> - @see GRIB2_SECTION1_TABLES_DEFAULT_PRESET -!> - @see GRIB2_SECTION1_TABLES_DEFAULT_RUNTIME -!> - @see GRIB2_SECTION1_TABLES_DEFAULT_TO_BE_ENCODED -!> - @see GRIB2_SECTION1_TABLES_DEFAULT_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_tables_default_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_TABLES_DEFAULT_MOD' -MODULE GRIB2_SECTION1_TABLES_DEFAULT_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION1_TABLES_DEFAULT_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION1_TABLES_DEFAULT_T - - !> Default symbols visibility - PRIVATE - - INTEGER(KIND=JPIB_K) :: TABLES_VERSION_ = UNDEF_PARAM_E - INTEGER(KIND=JPIB_K) :: LOCAL_TABLES_VERSION_ = 0_JPIB_K - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION1_TABLES_DEFAULT_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION1_TABLES_DEFAULT_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION1_TABLES_DEFAULT_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION1_TABLES_DEFAULT_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION1_TABLES_DEFAULT_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION1_TABLES_DEFAULT_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_TABLES_DEFAULT_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_TABLES_DEFAULT_INIT -!> @see GRIB2_SECTION1_TABLES_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_TABLES_DEFAULT_PRESET -!> @see GRIB2_SECTION1_TABLES_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_TABLES_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_TABLES_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_TABLES_DEFAULT_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_TABLES_DEFAULT_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_TABLES_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LOCAL_TABLES_VERSION - LOGICAL :: HAS_TABLES_VERSION - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'TABLES' - THIS%KIND_ = 'DEFAULT' - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'local-tables-version', HAS_LOCAL_TABLES_VERSION, HOOKS ) - - ! Read the subCentre - IF (HAS_LOCAL_TABLES_VERSION) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'local-tables-version', THIS%LOCAL_TABLES_VERSION_, HOOKS ) - ELSE - THIS%LOCAL_TABLES_VERSION_ = 0_JPIB_K - END IF - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'tables-version', HAS_TABLES_VERSION, HOOKS ) - - ! Read the subCentre - IF (HAS_TABLES_VERSION) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'tables-version', THIS%TABLES_VERSION_, HOOKS ) - ELSE - ! Default value of tables version is 33 (almost chosen randomly) - ! MIVAL: 33 is the default value for the tables version - THIS%TABLES_VERSION_ = UNDEF_PARAM_E - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_TABLES_DEFAULT_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_TABLES_DEFAULT_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_TABLES_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_TABLES_DEFAULT_INIT -!> @see GRIB2_SECTION1_TABLES_DEFAULT_PRESET -!> @see GRIB2_SECTION1_TABLES_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_TABLES_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_TABLES_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_TABLES_DEFAULT_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_TABLES_DEFAULT_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: CGRIB_METADATA_MOD, ONLY: CGRIB_METADATA_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: CONSTANTS_MOD, ONLY: RAD2DEG - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported from external libraries - USE :: GRIB_API, ONLY: GRIB_GET - USE :: GRIB_API, ONLY: GRIB_SUCCESS - USE :: GRIB_API, ONLY: GRIB_GET_ERROR_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_TABLES_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIM_K) :: KRET - INTEGER(KIND=JPIM_K) :: HANDLE - INTEGER(KIND=JPIM_K) :: LATEST_TABLE_VERSION - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GRIB_GET_FAILED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_HANDLE=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Set the tables version - IF ( PAR%TABLES_VERSION .NE. UNDEF_PARAM_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'tablesVersion', PAR%TABLES_VERSION ) - ELSEIF ( THIS%TABLES_VERSION_ .NE. UNDEF_PARAM_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'tablesVersion', THIS%TABLES_VERSION_ ) - ELSE - - ! This case should be unreached at the moment, but the code is here to - ! show how to lookup the latest tables version from the sample - SELECT TYPE(GRIB_METADATA => METADATA) - - CLASS IS (CGRIB_METADATA_T) - - ! If the metadata is a CGRIB metadata, we cannot set the tables version - PP_TRYCALL(ERRFLAG_METADATA) GRIB_METADATA%TABLES_VERSION_LATEST( THIS%TABLES_VERSION_, HOOKS ) - - CLASS DEFAULT - - ! If the metadata is not a GRIB metadata, we cannot set the tables version - PP_DEBUG_CRITICAL_THROW( ERRFLAG_METADATA ) - - END SELECT - - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'tablesVersion', THIS%TABLES_VERSION_ ) - - END IF - - ! Set the tables version to the latest one - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'localTablesVersion', THIS%LOCAL_TABLES_VERSION_ ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=4096) :: GRIB_ERROR - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_GRIB_GET_FAILED) - GRIB_ERROR = REPEAT(' ', 4096) - CALL GRIB_GET_ERROR_STRING( KRET, GRIB_ERROR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get "latestTablesVersion" from sample' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'grib error: '//TRIM(ADJUSTL(GRIB_ERROR)) ) - CASE (ERRFLAG_UNABLE_TO_GET_HANDLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get handle from metadata' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_TABLES_DEFAULT_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_TABLES_DEFAULT_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_TABLES_DEFAULT_PRESET -!> @see GRIB2_SECTION1_TABLES_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_TABLES_DEFAULT_INIT -!> @see GRIB2_SECTION1_TABLES_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_TABLES_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_TABLES_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_TABLES_DEFAULT_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_TABLES_DEFAULT_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_TABLES_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_TABLES_DEFAULT_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_TABLES_DEFAULT_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_TABLES_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_TABLES_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_TABLES_DEFAULT_INIT -!> @see GRIB2_SECTION1_TABLES_DEFAULT_PRESET -!> @see GRIB2_SECTION1_TABLES_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION1_TABLES_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_TABLES_DEFAULT_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_TABLES_DEFAULT_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_TABLES_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_TABLES_DEFAULT_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_TABLES_DEFAULT_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_TABLES_DEFAULT_INIT -!> @see GRIB2_SECTION1_TABLES_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION1_TABLES_DEFAULT_PRESET -!> @see GRIB2_SECTION1_TABLES_DEFAULT_RUNTIME -!> @see GRIB2_SECTION1_TABLES_DEFAULT_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_TABLES_DEFAULT_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_TABLES_DEFAULT_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_TABLES_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_TABLES_DEFAULT_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION1_TABLES_DEFAULT_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/grib2_section1_tables_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/grib2_section1_tables_factory_mod.F90 deleted file mode 100644 index 1a7aef394..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2-tables-configurator/grib2_section1_tables_factory_mod.F90 +++ /dev/null @@ -1,587 +0,0 @@ -!> -!> @file grib2_section1_tables_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> The `GRIB2_SECTION1_TABLES_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Param Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_TABLES_CONFIGURATOR_000_MOD::GRIB2_TABLES_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_tables_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_TABLES_FACTORY_MOD' -MODULE GRIB2_SECTION1_TABLES_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the tables_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: TABLES_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_TABLES_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_TABLES_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_TABLES_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_TABLES_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Param Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_TABLES_CONFIGURATOR_000_T`) -!> to the `GRIB2_TABLES_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_TABLES_CONFIGURATOR The GRIB2 Param Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Param Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_TABLES_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_TABLES_CONFIGURATOR_000_MOD::GRIB2_TABLES_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_TABLES_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_TABLES_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_TABLES_CONFIGURATOR_CFG( GRIB2_TABLES_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION1_TABLES_DEFAULT_MOD, ONLY: GRIB2_SECTION1_TABLES_DEFAULT_T - USE :: GRIB2_SECTION1_TABLES_CUSTOM_MOD, ONLY: GRIB2_SECTION1_TABLES_CUSTOM_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_TABLES_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_TABLES_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION1_TABLES_DEFAULT_T::GRIB2_TABLES_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION1_TABLES_CUSTOM_T::GRIB2_TABLES_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_TABLES_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get tables_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown tables_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating tables_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing tables_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_TABLES_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Param Configurator structure. -!> -!> This function takes a GRIB2 Param Configurator object (`GRIB2_TABLES_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_TABLES_CONFIGURATOR The GRIB2 Param Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_TABLES_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_TABLES_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_TABLES_CONFIGURATOR( GRIB2_TABLES_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_TABLES_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_TABLES_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_TABLES_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_TABLES_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'tables_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating tables_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing tables_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_TABLES_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Param Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [out] TABLES_CONFIGURATOR_TYPE Identifier of the tables_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_TABLES_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_TABLES_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_TABLES_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, TABLES_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: TABLES_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CTABLES_CONFIGURATOR_TYPE - LOGICAL :: HAS_TABLES_CONFIGURATOR - LOGICAL :: TABLES_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - TABLES_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the TABLES_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, TABLES_CONFIGURATOR_KEY, HAS_TABLES_CONFIGURATOR, HOOKS ) - - !> Read the TABLES_CONFIGURATOR template number - IF ( HAS_TABLES_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, TABLES_CONFIGURATOR_KEY, CTABLES_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CTABLES_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CTABLES_CONFIGURATOR_TYPE, TABLES_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( TABLES_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CTABLES_CONFIGURATOR_TYPE, TABLES_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CTABLES_CONFIGURATOR_TYPE) - CASE ( 'default' ) - TABLES_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ( 'custom' ) - TABLES_CONFIGURATOR_TYPE = 1_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CTABLES_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'TABLES_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating TABLES_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_TABLES_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION1_TABLES_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2_section1_000_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2_section1_000_mod.F90 deleted file mode 100644 index d9416cdf3..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2_section1_000_mod.F90 +++ /dev/null @@ -1,1769 +0,0 @@ -!> -!> @file grib2_section1_000_mod.F90 -!> -!> @brief Module for managing GRIB2 SECTION 1 operations. -!> -!> The `GRIB2_SECTION1_000_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 SECTION 1 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 SECTION 1 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION1_000_INIT -!> - @see GRIB2_SECTION1_000_ALLOCATE -!> - @see GRIB2_SECTION1_000_PRESET -!> - @see GRIB2_SECTION1_000_RUNTIME -!> - @see GRIB2_SECTION1_000_TO_BE_ENCODED -!> - @see GRIB2_SECTION1_000_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_000_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_000_MOD' -MODULE GRIB2_SECTION1_000_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 SECTION 1 handler. -!> -!> The `GRIB2_SECTION1_000_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 SECTION 1 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION1_000_T - - !> Default symbols visibility - PRIVATE - - !> Template number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 0_JPIB_K - - !> Configurations to be loaded from the YAML file - CLASS(GRIB_SECTION_BASE_A), POINTER :: ORIGIN_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TABLES_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: REFERENCE_TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: DATA_TYPE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 SECTION 1 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION1_000_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 SECTION 1 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION1_000_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 SECTION 1 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION1_000_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 SECTION 1 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION1_000_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 SECTION 1 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION1_000_FREE - - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION1_000_PRINT - - - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: BUILD_ORIGIN_FROM_CFG => GRIB2_SECTION1_000_BUILD_ORIGIN_FROM_CFG - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: BUILD_TABLES_FROM_CFG => GRIB2_SECTION1_000_BUILD_TABLES_FROM_CFG - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: BUILD_REFERENCE_TIME_FROM_CFG => GRIB2_SECTION1_000_BUILD_REFERENCE_TIME_FROM_CFG - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: BUILD_DATA_TYPE_FROM_CFG => GRIB2_SECTION1_000_BUILD_DATA_TYPE_FROM_CFG - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION1_000_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 SECTION 1 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 SECTION 1 object (`THIS`) using YAML configuration data (`CFG`). -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_@XXX@_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_000_INIT -!> @see GRIB2_SECTION1_000_ALLOCATE -!> @see GRIB2_SECTION1_000_PRESET -!> @see GRIB2_SECTION1_000_RUNTIME -!> @see GRIB2_SECTION1_000_TO_BE_ENCODED -!> @see GRIB2_SECTION1_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_000_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_000_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ORIGIN_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TABLES_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_REFERENCE_TIME_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_DATA_TYPE_HANDLER=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'IDENTIFICATION_SECTION' - THIS%KIND_ = '1.0' - - ! Logging informations - PP_LOG_TODO( 'Cfg initialization of GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//'('//TRIM(ADJUSTL(THIS%KIND_))//')' ) - - - ! Initialize sub sections - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ORIGIN_HANDLER) THIS%BUILD_ORIGIN_FROM_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TABLES_HANDLER) THIS%BUILD_TABLES_FROM_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_REFERENCE_TIME_HANDLER) THIS%BUILD_REFERENCE_TIME_FROM_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_DATA_TYPE_HANDLER) THIS%BUILD_DATA_TYPE_FROM_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_ORIGIN_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing origin handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_TABLES_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing tables handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_REFERENCE_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing reference time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_DATA_TYPE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing data type handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_000_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 SECTION 1 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 SECTION 1 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_@XXX@_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_000_ALLOCATE -!> @see GRIB2_SECTION1_000_INIT -!> @see GRIB2_SECTION1_000_PRESET -!> @see GRIB2_SECTION1_000_RUNTIME -!> @see GRIB2_SECTION1_000_TO_BE_ENCODED -!> @see GRIB2_SECTION1_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_000_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_000_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_ORIGIN=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_TABLES=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_REFERENCE_TIME=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE_DATA_TYPE=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ORIGIN_), ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TABLES_), ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%REFERENCE_TIME_), ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DATA_TYPE_), ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED ) - - ! Logging informations - PP_LOG_INFO( 'Allocating GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'.'//TRIM(ADJUSTL(THIS%SUBTYPE_)) ) - - ! Allocate the subsections - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_ORIGIN) THIS%ORIGIN_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_TABLES) THIS%TABLES_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_REFERENCE_TIME) THIS%REFERENCE_TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_ALLOCATE_DATA_TYPE) THIS%DATA_TYPE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'origin handler not associated' ) - CASE ( ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'tables handler not associated' ) - CASE ( ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'reference time handler not associated' ) - CASE ( ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data type handler not associated' ) - CASE ( ERRFLAG_UNABLE_TO_ALLOCATE_ORIGIN ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating origin handler' ) - CASE ( ERRFLAG_UNABLE_TO_ALLOCATE_TABLES ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating tables handler' ) - CASE ( ERRFLAG_UNABLE_TO_ALLOCATE_REFERENCE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating reference time handler' ) - CASE ( ERRFLAG_UNABLE_TO_ALLOCATE_DATA_TYPE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating data type handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_000_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 SECTION 1 using the provided parameters and message data. -!> -!> This function presets a GRIB2 SECTION 1 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION1_000_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_000_PRESET -!> @see GRIB2_SECTION1_000_ALLOCATE -!> @see GRIB2_SECTION1_000_INIT -!> @see GRIB2_SECTION1_000_RUNTIME -!> @see GRIB2_SECTION1_000_TO_BE_ENCODED -!> @see GRIB2_SECTION1_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_000_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_000_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRESET_ORIGIN=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRESET_TABLES=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRESET_REFERENCE_TIME=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRESET_DATA_TYPE=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ORIGIN_), ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TABLES_), ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%REFERENCE_TIME_), ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DATA_TYPE_), ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED ) - - ! Logging informations - PP_LOG_INFO( 'Runtime GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_)) ) - - ! Preset the subsections - PP_TRYCALL(ERRFLAG_UNABLE_TO_PRESET_ORIGIN) THIS%ORIGIN_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_PRESET_TABLES) THIS%TABLES_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_PRESET_REFERENCE_TIME) THIS%REFERENCE_TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_PRESET_DATA_TYPE) THIS%DATA_TYPE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'origin handler not associated' ) - CASE ( ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'tables handler not associated' ) - CASE ( ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'reference time handler not associated' ) - CASE ( ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data type handler not associated' ) - CASE ( ERRFLAG_UNABLE_TO_PRESET_ORIGIN ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error preset origin handler' ) - CASE ( ERRFLAG_UNABLE_TO_PRESET_TABLES ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error preset tables handler' ) - CASE ( ERRFLAG_UNABLE_TO_PRESET_REFERENCE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error preset reference time handler' ) - CASE ( ERRFLAG_UNABLE_TO_PRESET_DATA_TYPE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error preset data type handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_000_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 SECTION 1 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 SECTION 1 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> -!> @param [in] THIS An object of type `GRIB2_SECTION1_000_T` representing the GRIB section to be allocated. -!> @param [in] PARAMS Model parameters used during the runtime process. -!> @param [in] MSG Message structure providing necessary information. -!> @param [in] CURR_TIME Current time used in the runtime process. -!> @param [in] TIME_HISTORY Time history information for the runtime process. -!> @param [inout] METADATA Pointer to metadata involved in the runtime process. -!> @param [in] VERBOSE Logical flag for verbose output during the runtime operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_000_RUNTIME -!> @see GRIB2_SECTION1_000_ALLOCATE -!> @see GRIB2_SECTION1_000_INIT -!> @see GRIB2_SECTION1_000_PRESET -!> @see GRIB2_SECTION1_000_TO_BE_ENCODED -!> @see GRIB2_SECTION1_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_000_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_000_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_RUNTIME_ORIGIN=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_RUNTIME_TABLES=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_RUNTIME_REFERENCE_TIME=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_RUNTIME_DATA_TYPE=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ORIGIN_), ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TABLES_), ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%REFERENCE_TIME_), ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DATA_TYPE_), ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED ) - - ! Logging informations - PP_LOG_INFO( 'Runtime GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_)) ) - - ! Runtime the subsections - PP_TRYCALL(ERRFLAG_UNABLE_TO_RUNTIME_ORIGIN) THIS%ORIGIN_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_RUNTIME_TABLES) THIS%TABLES_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_RUNTIME_REFERENCE_TIME) THIS%REFERENCE_TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_RUNTIME_DATA_TYPE) THIS%DATA_TYPE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'origin handler not associated' ) - CASE ( ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'tables handler not associated' ) - CASE ( ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'reference time handler not associated' ) - CASE ( ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data type handler not associated' ) - CASE ( ERRFLAG_UNABLE_TO_RUNTIME_ORIGIN ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error runtime origin handler' ) - CASE ( ERRFLAG_UNABLE_TO_RUNTIME_TABLES ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error runtime tables handler' ) - CASE ( ERRFLAG_UNABLE_TO_RUNTIME_REFERENCE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error runtime reference time handler' ) - CASE ( ERRFLAG_UNABLE_TO_RUNTIME_DATA_TYPE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error runtime data type handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_000_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 SECTION 1 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 SECTION 1 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION1_@XXX@_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_000_INIT -!> @see GRIB2_SECTION1_000_ALLOCATE -!> @see GRIB2_SECTION1_000_PRESET -!> @see GRIB2_SECTION1_000_RUNTIME -!> @see GRIB2_SECTION1_000_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_000_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_000_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION1_ORIGIN_FACTORY_MOD, ONLY: DESTROY_GRIB2_ORIGIN_CONFIGURATOR - USE :: GRIB2_SECTION1_TABLES_FACTORY_MOD, ONLY: DESTROY_GRIB2_TABLES_CONFIGURATOR - USE :: GRIB2_SECTION1_REFERENCE_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_REFERENCE_TIME_CONFIGURATOR - USE :: GRIB2_SECTION1_DATA_TYPE_FACTORY_MOD, ONLY: DESTROY_GRIB2_DATA_TYPE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DESTROY_ORIGIN=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DESTROY_TABLES=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DESTROY_REFERENCE_TIME=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DESTROY_DATA_TYPE=9_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ORIGIN_), ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TABLES_), ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%REFERENCE_TIME_), ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DATA_TYPE_), ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED ) - - ! Logging informations - PP_LOG_TODO( 'Free GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_)) ) - - !> Destroy subsections - PP_TRYCALL(ERRFLAG_UNABLE_TO_DESTROY_ORIGIN) DESTROY_GRIB2_ORIGIN_CONFIGURATOR( THIS%ORIGIN_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_DESTROY_TABLES) DESTROY_GRIB2_TABLES_CONFIGURATOR( THIS%TABLES_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_DESTROY_REFERENCE_TIME) DESTROY_GRIB2_REFERENCE_TIME_CONFIGURATOR( THIS%REFERENCE_TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_DESTROY_DATA_TYPE) DESTROY_GRIB2_DATA_TYPE_CONFIGURATOR( THIS%DATA_TYPE_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'origin handler not associated' ) - CASE ( ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'tables handler not associated' ) - CASE ( ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'reference time handler not associated' ) - CASE ( ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data type handler not associated' ) - CASE ( ERRFLAG_UNABLE_TO_DESTROY_ORIGIN ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destroy origin handler' ) - CASE ( ERRFLAG_UNABLE_TO_DESTROY_TABLES ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destroy tables handler' ) - CASE ( ERRFLAG_UNABLE_TO_DESTROY_REFERENCE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destroy reference time handler' ) - CASE ( ERRFLAG_UNABLE_TO_DESTROY_DATA_TYPE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destroy data type handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_000_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_000_BUILD_ORIGIN_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_000_BUILD_ORIGIN_FROM_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION1_ORIGIN_FACTORY_MOD, ONLY: MAKE_GRIB2_ORIGIN_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ORIGIN_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ORIGIN_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ORIGIN_CONFIGURATOR_NAME='origin-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ORIGIN_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ORIGIN_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ORIGIN_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ORIGIN_), ERRFLAG_ORIGIN_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ORIGIN_CONFIGURATOR_NAME, HAS_ORIGIN_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ORIGIN_CONFIGURATOR, ERRFLAG_ORIGIN_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ORIGIN_CONFIGURATOR_NAME, ORIGIN_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ORIGIN_CONFIGURATOR) MAKE_GRIB2_ORIGIN_CONFIGURATOR( THIS%ORIGIN_, THIS%TEMPLATE_NUMBER_, ORIGIN_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ORIGIN_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ORIGIN_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'origin configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ORIGIN_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'origin configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ORIGIN_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make origin configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate origin configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_000_BUILD_ORIGIN_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_000_BUILD_TABLES_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_000_BUILD_TABLES_FROM_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION1_TABLES_FACTORY_MOD, ONLY: MAKE_GRIB2_TABLES_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TABLES_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TABLES_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TABLES_CONFIGURATOR_NAME='tables-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TABLES_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TABLES_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TABLES_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TABLES_), ERRFLAG_TABLES_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TABLES_CONFIGURATOR_NAME, HAS_TABLES_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TABLES_CONFIGURATOR, ERRFLAG_TABLES_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TABLES_CONFIGURATOR_NAME, TABLES_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TABLES_CONFIGURATOR) MAKE_GRIB2_TABLES_CONFIGURATOR( THIS%TABLES_, THIS%TEMPLATE_NUMBER_, TABLES_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TABLES_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TABLES_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'tables configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TABLES_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'tables configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TABLES_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make tables configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate tables configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_000_BUILD_TABLES_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_000_BUILD_REFERENCE_TIME_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_000_BUILD_REFERENCE_TIME_FROM_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION1_REFERENCE_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_REFERENCE_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_REFERENCE_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: REFERENCE_TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: REFERENCE_TIME_CONFIGURATOR_NAME='reference-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REFERENCE_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REFERENCE_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_REFERENCE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%REFERENCE_TIME_), ERRFLAG_REFERENCE_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, REFERENCE_TIME_CONFIGURATOR_NAME, HAS_REFERENCE_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_REFERENCE_TIME_CONFIGURATOR, ERRFLAG_REFERENCE_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, REFERENCE_TIME_CONFIGURATOR_NAME, REFERENCE_TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_REFERENCE_TIME_CONFIGURATOR) MAKE_GRIB2_REFERENCE_TIME_CONFIGURATOR( THIS%REFERENCE_TIME_, THIS%TEMPLATE_NUMBER_, REFERENCE_TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( REFERENCE_TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_REFERENCE_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'reference time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_REFERENCE_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'reference time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_REFERENCE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make reference time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate reference time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_000_BUILD_REFERENCE_TIME_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_000_BUILD_DATA_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_000_BUILD_DATA_TYPE_FROM_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION1_DATA_TYPE_FACTORY_MOD, ONLY: MAKE_GRIB2_DATA_TYPE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_DATA_TYPE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: DATA_TYPE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: DATA_TYPE_CONFIGURATOR_NAME='data-type-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DATA_TYPE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DATA_TYPE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_DATA_TYPE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%DATA_TYPE_), ERRFLAG_DATA_TYPE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, DATA_TYPE_CONFIGURATOR_NAME, HAS_DATA_TYPE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_DATA_TYPE_CONFIGURATOR, ERRFLAG_DATA_TYPE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, DATA_TYPE_CONFIGURATOR_NAME, DATA_TYPE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_DATA_TYPE_CONFIGURATOR) MAKE_GRIB2_DATA_TYPE_CONFIGURATOR( THIS%DATA_TYPE_, THIS%TEMPLATE_NUMBER_, DATA_TYPE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( DATA_TYPE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DATA_TYPE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data type configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_DATA_TYPE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data type configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_DATA_TYPE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make data type configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate data type configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_000_BUILD_DATA_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION1_000_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION1_000_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION1_000_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_ORIGIN=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_TABLES=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_REFERENCE_TIME=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PRINT_DATA_TYPE=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ORIGIN_), ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TABLES_), ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%REFERENCE_TIME_), ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DATA_TYPE_), ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_ORIGIN) THIS%ORIGIN_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_TABLES) THIS%TABLES_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_REFERENCE_TIME) THIS%REFERENCE_TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_PRINT_DATA_TYPE) THIS%DATA_TYPE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_WRITE_ERROR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'write error' ) - CASE ( ERRFLAG_ORIGIN_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'origin handler not associated' ) - CASE ( ERRFLAG_TABLES_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'tables handler not associated' ) - CASE ( ERRFLAG_REFERENCE_TIME_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'reference time handler not associated' ) - CASE ( ERRFLAG_DATA_TYPE_HANDLER_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data type handler not associated' ) - CASE ( ERRFLAG_UNABLE_TO_PRINT_ORIGIN ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error print origin handler' ) - CASE ( ERRFLAG_UNABLE_TO_PRINT_TABLES ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error print tables handler' ) - CASE ( ERRFLAG_UNABLE_TO_PRINT_REFERENCE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error print reference time handler' ) - CASE ( ERRFLAG_UNABLE_TO_PRINT_DATA_TYPE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error print data type handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION1_000_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION1_000_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2_section1_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2_section1_factory_mod.F90 deleted file mode 100644 index d380406d4..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section1/grib2_section1_factory_mod.F90 +++ /dev/null @@ -1,573 +0,0 @@ -!> -!> @file grib2_section1_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Section 1 objects. -!> -!> The `GRIB2_SECTION1_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Section 1 objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION1_000_MOD::GRIB2_SECTION1_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section1_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION1_FACTORY_MOD' -MODULE GRIB2_SECTION1_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the section1 number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: SECTION1_KEY='template-number' - - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_SECTION1 - MODULE PROCEDURE MAKE_GRIB2_SECTION1_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_SECTION1 -PUBLIC :: DESTROY_GRIB2_SECTION1 - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Section 1 objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Section 1 object -!> based on the provided parameters. It assigns the proper type (`GRIB2_SECTION1_000_T`) -!> to the `GRIB2_SECTION1` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_SECTION1 The GRIB2 Section 1 object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 1 object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_SECTION1_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION1_000_MOD::GRIB2_SECTION1_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION1_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_SECTION1_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_SECTION1_CFG( GRIB2_SECTION1, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION1_000_MOD, ONLY: GRIB2_SECTION1_000_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION1 - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_1=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_SECTION1_TYPE_FROM_CFG( CFG, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION1_000_T::GRIB2_SECTION1, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_1 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_SECTION1%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to read section1 type' ) - CASE (ERRFLAG_UNKNOWN_SECTION_1) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown section1 number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section1 number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing section1 number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_SECTION1_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Section 1 structure. -!> -!> This function takes a GRIB2 Section 1 object (`GRIB2_SECTION1`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_SECTION1 The GRIB2 Section 1 object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION1 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_SECTION1' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_SECTION1( GRIB2_SECTION1, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION1 - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_SECTION1), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_SECTION1%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_SECTION1, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'section0 to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating section0 number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing section0' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_SECTION1 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Section 1 object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 1 object. -!> @param [out] SECTION1_TYPE Identifier of the section0 type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION1 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_SECTION1_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_SECTION1_TYPE_FROM_CFG( CFG, SECTION1_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KIND=JPIB_K), INTENT(OUT) :: SECTION1_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CSECTION1_TYPE - LOGICAL :: HAS_SECTION1 - LOGICAL :: SECTION1_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - SECTION1_TYPE = -1_JPIB_K - - !> Check if configuration has the SECTION1 key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, SECTION1_KEY, HAS_SECTION1, HOOKS ) - - !> Read the SECTION1 template number - IF ( HAS_SECTION1 ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, SECTION1_KEY, CSECTION1_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CSECTION1_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CSECTION1_TYPE, SECTION1_IS_INTEGER, HOOKS ) - IF ( SECTION1_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CSECTION1_TYPE, SECTION1_TYPE, HOOKS ) - ELSE - ! TODO: Somehow decide automatically whcih SECTION1 to use. String can be - ! a label for the method to use. - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - ENDIF - DEALLOCATE(CSECTION1_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SECTION1 ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating SECTION1 number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_SECTION1_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION1_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/CMakeLists.txt deleted file mode 100644 index 8f6a82575..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION2_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section2 sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION2_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION2_DIR}/grib2_section2_destine_001_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION2_DIR}/grib2_section2_destine_036_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION2_DIR}/grib2_section2_001_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION2_DIR}/grib2_section2_014_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION2_DIR}/grib2_section2_015_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION2_DIR}/grib2_section2_024_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION2_DIR}/grib2_section2_036_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION2_DIR}/grib2_section2_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION2_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION2_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION2_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_001_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_001_mod.F90 deleted file mode 100644 index 571dd3afd..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_001_mod.F90 +++ /dev/null @@ -1,854 +0,0 @@ -!> -!> @file grib2_section2_001_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 2 operations. -!> -!> The `GRIB2_SECTION2_001_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 2 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 2 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION2_001_INIT -!> - @see GRIB2_SECTION2_001_ALLOCATE -!> - @see GRIB2_SECTION2_001_PRESET -!> - @see GRIB2_SECTION2_001_RUNTIME -!> - @see GRIB2_SECTION2_001_TO_BE_ENCODED -!> - @see GRIB2_SECTION2_001_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section2_001_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION2_001_MOD' -MODULE GRIB2_SECTION2_001_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 2 handler. -!> -!> The `GRIB2_SECTION2_001_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 2 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION2_001_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 2 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION2_001_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 2 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION2_001_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 2 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION2_001_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 2 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION2_001_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 2 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION2_001_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION2_001_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 2 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_001_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_001_INIT -!> @see GRIB2_SECTION2_001_ALLOCATE -!> @see GRIB2_SECTION2_001_PRESET -!> @see GRIB2_SECTION2_001_RUNTIME -!> @see GRIB2_SECTION2_001_TO_BE_ENCODED -!> @see GRIB2_SECTION2_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_001_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_001_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_001_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'LOCAL_USE_SECTION' - THIS%KIND_ = '2.1' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_001_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 2 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_001_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_001_ALLOCATE -!> @see GRIB2_SECTION2_001_INIT -!> @see GRIB2_SECTION2_001_PRESET -!> @see GRIB2_SECTION2_001_RUNTIME -!> @see GRIB2_SECTION2_001_TO_BE_ENCODED -!> @see GRIB2_SECTION2_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_001_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_001_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_001_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Enable section 2 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'setLocalDefinition', 1 ) - - ! Set the number of local definitions - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'localDefinitionNumber', 1 ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_001_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 2 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_001_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_001_PRESET -!> @see GRIB2_SECTION2_001_ALLOCATE -!> @see GRIB2_SECTION2_001_INIT -!> @see GRIB2_SECTION2_001_RUNTIME -!> @see GRIB2_SECTION2_001_TO_BE_ENCODED -!> @see GRIB2_SECTION2_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_001_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_001_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_001_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Preset the section with the mars keywords - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'stream', MSG%STREAM ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'type', MSG%TYPE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'class', MSG%CLASS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'expver', MSG%EXPVER ) - - ! Eventually other metadata needs to be set according to the specific section 2 type - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_001_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 2 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_001_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_001_RUNTIME -!> @see GRIB2_SECTION2_001_ALLOCATE -!> @see GRIB2_SECTION2_001_INIT -!> @see GRIB2_SECTION2_001_PRESET -!> @see GRIB2_SECTION2_001_TO_BE_ENCODED -!> @see GRIB2_SECTION2_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_001_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_001_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_001_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 2 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_001_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 2 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 2 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_001_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_001_INIT -!> @see GRIB2_SECTION2_001_ALLOCATE -!> @see GRIB2_SECTION2_001_PRESET -!> @see GRIB2_SECTION2_001_RUNTIME -!> @see GRIB2_SECTION2_001_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_001_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_001_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_001_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_001_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION2_001_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_014_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_014_mod.F90 deleted file mode 100644 index 7c4787096..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_014_mod.F90 +++ /dev/null @@ -1,852 +0,0 @@ -!> -!> @file grib2_section2_014_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 2 operations. -!> -!> The `GRIB2_SECTION2_014_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 2 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 2 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION2_014_INIT -!> - @see GRIB2_SECTION2_014_ALLOCATE -!> - @see GRIB2_SECTION2_014_PRESET -!> - @see GRIB2_SECTION2_014_RUNTIME -!> - @see GRIB2_SECTION2_014_TO_BE_ENCODED -!> - @see GRIB2_SECTION2_014_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section2_014_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION2_014_MOD' -MODULE GRIB2_SECTION2_014_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 2 handler. -!> -!> The `GRIB2_SECTION2_014_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 2 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION2_014_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 2 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION2_014_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 2 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION2_014_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 2 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION2_014_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 2 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION2_014_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 2 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION2_014_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION2_014_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 2 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_014_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_014_INIT -!> @see GRIB2_SECTION2_014_ALLOCATE -!> @see GRIB2_SECTION2_014_PRESET -!> @see GRIB2_SECTION2_014_RUNTIME -!> @see GRIB2_SECTION2_014_TO_BE_ENCODED -!> @see GRIB2_SECTION2_014_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_014_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_014_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_014_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'LOCAL_USE_SECTION' - THIS%KIND_ = '2.14' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_014_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 2 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_014_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_014_ALLOCATE -!> @see GRIB2_SECTION2_014_INIT -!> @see GRIB2_SECTION2_014_PRESET -!> @see GRIB2_SECTION2_014_RUNTIME -!> @see GRIB2_SECTION2_014_TO_BE_ENCODED -!> @see GRIB2_SECTION2_014_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_014_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_014_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_014_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Enable section 2 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'setLocalDefinition', 1 ) - - ! Set the number of local definitions - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'localDefinitionNumber', 14 ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_014_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 2 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_014_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_014_PRESET -!> @see GRIB2_SECTION2_014_ALLOCATE -!> @see GRIB2_SECTION2_014_INIT -!> @see GRIB2_SECTION2_014_RUNTIME -!> @see GRIB2_SECTION2_014_TO_BE_ENCODED -!> @see GRIB2_SECTION2_014_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_014_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_014_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_014_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Preset the section with the mars keywords - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'stream', MSG%STREAM ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'type', MSG%TYPE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'class', MSG%CLASS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'expver', MSG%EXPVER ) - - ! Eventually other metadata needs to be set according to the specific section 2 type - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_014_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 2 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_014_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_014_RUNTIME -!> @see GRIB2_SECTION2_014_ALLOCATE -!> @see GRIB2_SECTION2_014_INIT -!> @see GRIB2_SECTION2_014_PRESET -!> @see GRIB2_SECTION2_014_TO_BE_ENCODED -!> @see GRIB2_SECTION2_014_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_014_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_014_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_014_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 2 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_014_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 2 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 2 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_014_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_014_INIT -!> @see GRIB2_SECTION2_014_ALLOCATE -!> @see GRIB2_SECTION2_014_PRESET -!> @see GRIB2_SECTION2_014_RUNTIME -!> @see GRIB2_SECTION2_014_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_014_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_014_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_014_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_014_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION2_014_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_015_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_015_mod.F90 deleted file mode 100644 index 6f2d97587..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_015_mod.F90 +++ /dev/null @@ -1,902 +0,0 @@ -!> -!> @file grib2_section2_015_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 2 operations. -!> -!> The `GRIB2_SECTION2_015_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 2 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 2 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION2_015_INIT -!> - @see GRIB2_SECTION2_015_ALLOCATE -!> - @see GRIB2_SECTION2_015_PRESET -!> - @see GRIB2_SECTION2_015_RUNTIME -!> - @see GRIB2_SECTION2_015_TO_BE_ENCODED -!> - @see GRIB2_SECTION2_015_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section2_015_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION2_015_MOD' -MODULE GRIB2_SECTION2_015_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 2 handler. -!> -!> The `GRIB2_SECTION2_015_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 2 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION2_015_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 2 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION2_015_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 2 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION2_015_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 2 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION2_015_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 2 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION2_015_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 2 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION2_015_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION2_015_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 2 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_015_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_015_INIT -!> @see GRIB2_SECTION2_015_ALLOCATE -!> @see GRIB2_SECTION2_015_PRESET -!> @see GRIB2_SECTION2_015_RUNTIME -!> @see GRIB2_SECTION2_015_TO_BE_ENCODED -!> @see GRIB2_SECTION2_015_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_015_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_015_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_015_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'LOCAL_USE_SECTION' - THIS%KIND_ = '2.15' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_015_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 2 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_015_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_015_ALLOCATE -!> @see GRIB2_SECTION2_015_INIT -!> @see GRIB2_SECTION2_015_PRESET -!> @see GRIB2_SECTION2_015_RUNTIME -!> @see GRIB2_SECTION2_015_TO_BE_ENCODED -!> @see GRIB2_SECTION2_015_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_015_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_015_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_015_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Enable section 2 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'setLocalDefinition', 1 ) - - ! Set the number of local definitions - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'localDefinitionNumber', 15 ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_015_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 2 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_015_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_015_PRESET -!> @see GRIB2_SECTION2_015_ALLOCATE -!> @see GRIB2_SECTION2_015_INIT -!> @see GRIB2_SECTION2_015_RUNTIME -!> @see GRIB2_SECTION2_015_TO_BE_ENCODED -!> @see GRIB2_SECTION2_015_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_015_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_015_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: STREAM_MMSF_E - USE :: ENUMERATORS_MOD, ONLY: STREAM_MSMM_E - USE :: ENUMERATORS_MOD, ONLY: STREAM_MMSA_E - USE :: ENUMERATORS_MOD, ONLY: ISTREAM2CSTREAM - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_015_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=32) CTMP - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNDEF_STREAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNDEF_TYPE=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNDEF_CLASS=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNDEF_EXPVER=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNDEF_METHOD=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNDEF_SYSTEM=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ISTREAM2CSTREAM=8_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%STREAM .EQ. UNDEF_PARAM_E, ERRFLAG_UNDEF_STREAM ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%TYPE .EQ. UNDEF_PARAM_E, ERRFLAG_UNDEF_TYPE ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%CLASS .EQ. UNDEF_PARAM_E, ERRFLAG_UNDEF_CLASS ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%EXPVER .EQ. '****', ERRFLAG_UNDEF_EXPVER ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%METHOD .EQ. UNDEF_PARAM_E, ERRFLAG_UNDEF_METHOD ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%SYSTEM .EQ. UNDEF_PARAM_E, ERRFLAG_UNDEF_SYSTEM ) - - - ! Preset the section with the mars keywords - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'stream', MSG%STREAM ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'type', MSG%TYPE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'class', MSG%CLASS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'expver', MSG%EXPVER ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'methodNumber', MSG%METHOD ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'systemNumber', MSG%SYSTEM ) - - ! Warnings - IF ( (MSG%STREAM.NE.STREAM_MMSF_E) .AND. & -& (MSG%STREAM.NE.STREAM_MSMM_E) .AND. & -& (MSG%STREAM.NE.STREAM_MMSA_E) ) THEN - - CTMP = REPEAT(' ', LEN(CTMP) ) - - PP_TRYCALL(ERRFLAG_ISTREAM2CSTREAM) ISTREAM2CSTREAM( MSG%STREAM, CTMP, HOOKS ) - - WRITE( *, '(A)' ) 'WARNING: Unexpected stream in section2: LocalSectionNumber=15: "'//TRIM(ADJUSTL(CTMP))//'"' - - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_UNDEF_STREAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'stream is undefined' ) - CASE ( ERRFLAG_UNDEF_TYPE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'type is undefined' ) - CASE ( ERRFLAG_UNDEF_CLASS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'class is undefined' ) - CASE ( ERRFLAG_UNDEF_EXPVER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'expver is undefined' ) - CASE ( ERRFLAG_UNDEF_METHOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'method is undefined' ) - CASE ( ERRFLAG_UNDEF_SYSTEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'system is undefined' ) - CASE ( ERRFLAG_ISTREAM2CSTREAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'stream is not a valid istream2cstream' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_015_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 2 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_015_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_015_RUNTIME -!> @see GRIB2_SECTION2_015_ALLOCATE -!> @see GRIB2_SECTION2_015_INIT -!> @see GRIB2_SECTION2_015_PRESET -!> @see GRIB2_SECTION2_015_TO_BE_ENCODED -!> @see GRIB2_SECTION2_015_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_015_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_015_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_015_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 2 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_015_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 2 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 2 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_015_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_015_INIT -!> @see GRIB2_SECTION2_015_ALLOCATE -!> @see GRIB2_SECTION2_015_PRESET -!> @see GRIB2_SECTION2_015_RUNTIME -!> @see GRIB2_SECTION2_015_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_015_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_015_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_015_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_015_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION2_015_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_024_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_024_mod.F90 deleted file mode 100644 index 0af345f8a..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_024_mod.F90 +++ /dev/null @@ -1,854 +0,0 @@ -!> -!> @file grib2_section2_024_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 2 operations. -!> -!> The `GRIB2_SECTION2_024_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 2 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 2 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION2_024_INIT -!> - @see GRIB2_SECTION2_024_ALLOCATE -!> - @see GRIB2_SECTION2_024_PRESET -!> - @see GRIB2_SECTION2_024_RUNTIME -!> - @see GRIB2_SECTION2_024_TO_BE_ENCODED -!> - @see GRIB2_SECTION2_024_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section2_024_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION2_024_MOD' -MODULE GRIB2_SECTION2_024_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 2 handler. -!> -!> The `GRIB2_SECTION2_024_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 2 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION2_024_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 2 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION2_024_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 2 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION2_024_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 2 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION2_024_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 2 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION2_024_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 2 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION2_024_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION2_024_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 2 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_024_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_024_INIT -!> @see GRIB2_SECTION2_024_ALLOCATE -!> @see GRIB2_SECTION2_024_PRESET -!> @see GRIB2_SECTION2_024_RUNTIME -!> @see GRIB2_SECTION2_024_TO_BE_ENCODED -!> @see GRIB2_SECTION2_024_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_024_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_024_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_024_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'LOCAL_USE_SECTION' - THIS%KIND_ = '2.24' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_024_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 2 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_024_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_024_ALLOCATE -!> @see GRIB2_SECTION2_024_INIT -!> @see GRIB2_SECTION2_024_PRESET -!> @see GRIB2_SECTION2_024_RUNTIME -!> @see GRIB2_SECTION2_024_TO_BE_ENCODED -!> @see GRIB2_SECTION2_024_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_024_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_024_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_024_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Enable section 2 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'setLocalDefinition', 1 ) - - ! Set the number of local definitions - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'localDefinitionNumber', 24 ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_024_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 2 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_024_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_024_PRESET -!> @see GRIB2_SECTION2_024_ALLOCATE -!> @see GRIB2_SECTION2_024_INIT -!> @see GRIB2_SECTION2_024_RUNTIME -!> @see GRIB2_SECTION2_024_TO_BE_ENCODED -!> @see GRIB2_SECTION2_024_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_024_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_024_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_024_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Preset the section with the mars keywords - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'stream', MSG%STREAM ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'type', MSG%TYPE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'class', MSG%CLASS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'expver', MSG%EXPVER ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'channelNumber', MSG%CHANNEL ) - - ! Eventually other metadata needs to be set according to the specific section 2 type - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_024_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 2 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_024_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_024_RUNTIME -!> @see GRIB2_SECTION2_024_ALLOCATE -!> @see GRIB2_SECTION2_024_INIT -!> @see GRIB2_SECTION2_024_PRESET -!> @see GRIB2_SECTION2_024_TO_BE_ENCODED -!> @see GRIB2_SECTION2_024_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_024_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_024_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_024_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 2 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_024_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 2 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 2 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_024_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_024_INIT -!> @see GRIB2_SECTION2_024_ALLOCATE -!> @see GRIB2_SECTION2_024_PRESET -!> @see GRIB2_SECTION2_024_RUNTIME -!> @see GRIB2_SECTION2_024_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_024_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_024_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_024_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_024_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION2_024_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_036_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_036_mod.F90 deleted file mode 100644 index 3cec88544..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_036_mod.F90 +++ /dev/null @@ -1,855 +0,0 @@ -!> -!> @file grib2_section2_036_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 2 operations. -!> -!> The `GRIB2_SECTION2_036_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 2 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 2 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION2_036_INIT -!> - @see GRIB2_SECTION2_036_ALLOCATE -!> - @see GRIB2_SECTION2_036_PRESET -!> - @see GRIB2_SECTION2_036_RUNTIME -!> - @see GRIB2_SECTION2_036_TO_BE_ENCODED -!> - @see GRIB2_SECTION2_036_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section2_036_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION2_036_MOD' -MODULE GRIB2_SECTION2_036_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 2 handler. -!> -!> The `GRIB2_SECTION2_036_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 2 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION2_036_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 2 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION2_036_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 2 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION2_036_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 2 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION2_036_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 2 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION2_036_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 2 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION2_036_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION2_036_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 2 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_036_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_036_INIT -!> @see GRIB2_SECTION2_036_ALLOCATE -!> @see GRIB2_SECTION2_036_PRESET -!> @see GRIB2_SECTION2_036_RUNTIME -!> @see GRIB2_SECTION2_036_TO_BE_ENCODED -!> @see GRIB2_SECTION2_036_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_036_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_036_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_036_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'LOCAL_USE_SECTION' - THIS%KIND_ = '2.36' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_036_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 2 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_036_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_036_ALLOCATE -!> @see GRIB2_SECTION2_036_INIT -!> @see GRIB2_SECTION2_036_PRESET -!> @see GRIB2_SECTION2_036_RUNTIME -!> @see GRIB2_SECTION2_036_TO_BE_ENCODED -!> @see GRIB2_SECTION2_036_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_036_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_036_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_036_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Enable section 2 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'setLocalDefinition', 1 ) - - ! Set the number of local definitions - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'localDefinitionNumber', 36 ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_036_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 2 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_036_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_036_PRESET -!> @see GRIB2_SECTION2_036_ALLOCATE -!> @see GRIB2_SECTION2_036_INIT -!> @see GRIB2_SECTION2_036_RUNTIME -!> @see GRIB2_SECTION2_036_TO_BE_ENCODED -!> @see GRIB2_SECTION2_036_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_036_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_036_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_036_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Preset the section with the mars keywords - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'stream', MSG%STREAM ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'type', MSG%TYPE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'class', MSG%CLASS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'expver', MSG%EXPVER ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'anoffset', MSG%ANOFFSET ) - - ! Eventually other metadata needs to be set according to the specific section 2 type - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_036_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 2 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_036_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_036_RUNTIME -!> @see GRIB2_SECTION2_036_ALLOCATE -!> @see GRIB2_SECTION2_036_INIT -!> @see GRIB2_SECTION2_036_PRESET -!> @see GRIB2_SECTION2_036_TO_BE_ENCODED -!> @see GRIB2_SECTION2_036_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_036_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_036_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_036_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 2 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_036_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 2 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 2 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_036_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_036_INIT -!> @see GRIB2_SECTION2_036_ALLOCATE -!> @see GRIB2_SECTION2_036_PRESET -!> @see GRIB2_SECTION2_036_RUNTIME -!> @see GRIB2_SECTION2_036_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_036_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_036_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_036_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_036_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION2_036_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_destine_001_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_destine_001_mod.F90 deleted file mode 100644 index 3aabc9696..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_destine_001_mod.F90 +++ /dev/null @@ -1,966 +0,0 @@ -!> -!> @file grib2_section2_001_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 2 operations. -!> -!> The `GRIB2_SECTION2_DESTINE_001_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 2 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 2 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION2_DESTINE_001_INIT -!> - @see GRIB2_SECTION2_DESTINE_001_ALLOCATE -!> - @see GRIB2_SECTION2_DESTINE_001_PRESET -!> - @see GRIB2_SECTION2_DESTINE_001_RUNTIME -!> - @see GRIB2_SECTION2_DESTINE_001_TO_BE_ENCODED -!> - @see GRIB2_SECTION2_DESTINE_001_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section2_destine_001_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION2_DESTINE_001_MOD' -MODULE GRIB2_SECTION2_DESTINE_001_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 2 handler. -!> -!> The `GRIB2_SECTION2_DESTINE_001_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 2 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION2_DESTINE_001_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 2 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION2_DESTINE_001_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 2 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION2_DESTINE_001_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 2 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION2_DESTINE_001_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 2 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION2_DESTINE_001_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 2 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION2_DESTINE_001_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION2_DESTINE_001_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 2 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_DESTINE_001_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_DESTINE_001_INIT -!> @see GRIB2_SECTION2_DESTINE_001_ALLOCATE -!> @see GRIB2_SECTION2_DESTINE_001_PRESET -!> @see GRIB2_SECTION2_DESTINE_001_RUNTIME -!> @see GRIB2_SECTION2_DESTINE_001_TO_BE_ENCODED -!> @see GRIB2_SECTION2_DESTINE_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_DESTINE_001_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_DESTINE_001_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_DESTINE_001_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'LOCAL_USE_SECTION' - THIS%KIND_ = '2.1' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_DESTINE_001_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 2 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_DESTINE_001_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_DESTINE_001_ALLOCATE -!> @see GRIB2_SECTION2_DESTINE_001_INIT -!> @see GRIB2_SECTION2_DESTINE_001_PRESET -!> @see GRIB2_SECTION2_DESTINE_001_RUNTIME -!> @see GRIB2_SECTION2_DESTINE_001_TO_BE_ENCODED -!> @see GRIB2_SECTION2_DESTINE_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_DESTINE_001_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_DESTINE_001_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_DESTINE_001_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Enable section 2 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'setLocalDefinition', 1 ) - - ! Set the number of local definitions - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'localDefinitionNumber', 1 ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_DESTINE_001_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 2 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_DESTINE_001_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_DESTINE_001_PRESET -!> @see GRIB2_SECTION2_DESTINE_001_ALLOCATE -!> @see GRIB2_SECTION2_DESTINE_001_INIT -!> @see GRIB2_SECTION2_DESTINE_001_RUNTIME -!> @see GRIB2_SECTION2_DESTINE_001_TO_BE_ENCODED -!> @see GRIB2_SECTION2_DESTINE_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_DESTINE_001_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_DESTINE_001_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: DATASET_CLIMATE_DT_E - USE :: ENUMERATORS_MOD, ONLY: DATASET_EXTREMES_DT_E - USE :: ENUMERATORS_MOD, ONLY: DATASET_ON_DEMAND_CLIMATE_DT_E - USE :: ENUMERATORS_MOD, ONLY: DATASET_ON_DEMAND_EXTREMES_DT_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_DESTINE_001_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STREAM_UNDEFINED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TYPE_UNDEFINED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CLASS_UNDEFINED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXPVER_UNDEFINED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DATASET_UNDEFINED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ACTIVITY_UNDEFINED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXPERIMENT_UNDEFINED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RESOLUTION_UNDEFINED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GENERATION_UNDEFINED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REALIZATION_UNDEFINED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ACTIVITY_UNEXPECTED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXPERIMENT_UNEXPECTED=13_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RESOLUTION_UNEXPECTED=14_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GENERATION_UNEXPECTED=15_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_REALIZATION_UNEXPECTED=16_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=17_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNEXPECTED_VALUE_OF_DATASET=18_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%STREAM.EQ.UNDEF_PARAM_E, ERRFLAG_STREAM_UNDEFINED ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%TYPE.EQ.UNDEF_PARAM_E, ERRFLAG_TYPE_UNDEFINED ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%CLASS.EQ.UNDEF_PARAM_E, ERRFLAG_CLASS_UNDEFINED ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%EXPVER.EQ.REPEAT('*',4), ERRFLAG_EXPVER_UNDEFINED ) - - ! Dataset must always be present in Destine - PP_DEBUG_CRITICAL_COND_THROW( MSG%DATASET.EQ.UNDEF_PARAM_E, ERRFLAG_DATASET_UNDEFINED ) - - ! Preset the section with the mars keywords - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'stream', MSG%STREAM ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'type', MSG%TYPE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'class', MSG%CLASS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'expver', MSG%EXPVER ) - - ! Destine related metadata - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'dataset', MSG%DATASET ) - - SELECT CASE (MSG%DATASET) - - CASE (DATASET_CLIMATE_DT_E) ! ClimateDT - - PP_DEBUG_CRITICAL_COND_THROW( MSG%ACTIVITY.EQ.UNDEF_PARAM_E, ERRFLAG_ACTIVITY_UNDEFINED ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%EXPERIMENT.EQ.UNDEF_PARAM_E, ERRFLAG_EXPERIMENT_UNDEFINED ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%RESOLUTION.EQ.UNDEF_PARAM_E, ERRFLAG_RESOLUTION_UNDEFINED ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%GENERATION.EQ.UNDEF_PARAM_E .OR. MSG%GENERATION.LT.0_JPIB_K, ERRFLAG_GENERATION_UNDEFINED ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%REALIZATION.EQ.UNDEF_PARAM_E .OR. MSG%REALIZATION.LT.0_JPIB_K, ERRFLAG_REALIZATION_UNDEFINED ) - - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'activity', MSG%ACTIVITY ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'experiment', MSG%EXPERIMENT ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'resolution', MSG%RESOLUTION ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'generation', MSG%GENERATION ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'realization', MSG%REALIZATION ) - - CASE (DATASET_EXTREMES_DT_E) ! ExtremesDT - - ! For extremesDT only "dataset" is needed, other parameters are not needed - PP_DEBUG_CRITICAL_COND_THROW( MSG%ACTIVITY.NE.UNDEF_PARAM_E, ERRFLAG_ACTIVITY_UNEXPECTED ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%EXPERIMENT.NE.UNDEF_PARAM_E, ERRFLAG_EXPERIMENT_UNEXPECTED ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%RESOLUTION.NE.UNDEF_PARAM_E, ERRFLAG_RESOLUTION_UNEXPECTED ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%GENERATION.NE.UNDEF_PARAM_E, ERRFLAG_GENERATION_UNEXPECTED ) - PP_DEBUG_CRITICAL_COND_THROW( MSG%REALIZATION.NE.UNDEF_PARAM_E, ERRFLAG_REALIZATION_UNEXPECTED ) - - CASE (DATASET_ON_DEMAND_EXTREMES_DT_E) ! OnDemandExtremesDT - - ! On demand requires the keyword "geoRef" still not defined in the "datamod" - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - CASE (DATASET_ON_DEMAND_CLIMATE_DT_E) ! OnDemandClimateDT - - ! On demand requires the keyword "geoRef" still not defined in the "datamod" - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNEXPECTED_VALUE_OF_DATASET ) - - END SELECT - - ! Destine related parametrization - IF (PAR%DESTINE_LOCAL_VERSION.EQ.UNDEF_PARAM_E) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'destineLocalVersion', 1_JPIB_K ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'destineLocalVersion', PAR%DESTINE_LOCAL_VERSION ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_STREAM_UNDEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'stream is undefined' ) - CASE ( ERRFLAG_TYPE_UNDEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'type is undefined' ) - CASE ( ERRFLAG_CLASS_UNDEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'class is undefined' ) - CASE ( ERRFLAG_EXPVER_UNDEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'expver is undefined' ) - CASE ( ERRFLAG_DATASET_UNDEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'dataset is undefined' ) - CASE ( ERRFLAG_ACTIVITY_UNDEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'activity is undefined' ) - CASE ( ERRFLAG_EXPERIMENT_UNDEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'experiment is undefined' ) - CASE ( ERRFLAG_RESOLUTION_UNDEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'resolution is undefined' ) - CASE ( ERRFLAG_GENERATION_UNDEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'generation is undefined' ) - CASE ( ERRFLAG_REALIZATION_UNDEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'realization is undefined' ) - CASE ( ERRFLAG_ACTIVITY_UNEXPECTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'activity is unexpected' ) - CASE ( ERRFLAG_EXPERIMENT_UNEXPECTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'experiment is unexpected' ) - CASE ( ERRFLAG_RESOLUTION_UNEXPECTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'resolution is unexpected' ) - CASE ( ERRFLAG_GENERATION_UNEXPECTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'generation is unexpected' ) - CASE ( ERRFLAG_REALIZATION_UNEXPECTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'realization is unexpected' ) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'functionality not implemented' ) - CASE ( ERRFLAG_UNEXPECTED_VALUE_OF_DATASET ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unexpected value of dataset' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_DESTINE_001_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 2 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_DESTINE_001_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_DESTINE_001_RUNTIME -!> @see GRIB2_SECTION2_DESTINE_001_ALLOCATE -!> @see GRIB2_SECTION2_DESTINE_001_INIT -!> @see GRIB2_SECTION2_DESTINE_001_PRESET -!> @see GRIB2_SECTION2_DESTINE_001_TO_BE_ENCODED -!> @see GRIB2_SECTION2_DESTINE_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_DESTINE_001_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_DESTINE_001_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_DESTINE_001_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 2 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_DESTINE_001_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 2 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 2 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_DESTINE_001_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_DESTINE_001_INIT -!> @see GRIB2_SECTION2_DESTINE_001_ALLOCATE -!> @see GRIB2_SECTION2_DESTINE_001_PRESET -!> @see GRIB2_SECTION2_DESTINE_001_RUNTIME -!> @see GRIB2_SECTION2_DESTINE_001_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_DESTINE_001_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_DESTINE_001_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_DESTINE_001_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_DESTINE_001_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION2_DESTINE_001_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_destine_036_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_destine_036_mod.F90 deleted file mode 100644 index 793e3895a..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_destine_036_mod.F90 +++ /dev/null @@ -1,873 +0,0 @@ -!> -!> @file grib2_section2_destine_036_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 2 operations. -!> -!> The `GRIB2_SECTION2_DESTINE_036_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 2 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 2 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION2_DESTINE_036_INIT -!> - @see GRIB2_SECTION2_DESTINE_036_ALLOCATE -!> - @see GRIB2_SECTION2_DESTINE_036_PRESET -!> - @see GRIB2_SECTION2_DESTINE_036_RUNTIME -!> - @see GRIB2_SECTION2_DESTINE_036_TO_BE_ENCODED -!> - @see GRIB2_SECTION2_DESTINE_036_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section2_destine_036_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION2_DESTINE_036_MOD' -MODULE GRIB2_SECTION2_DESTINE_036_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 2 handler. -!> -!> The `GRIB2_SECTION2_DESTINE_036_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 2 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION2_DESTINE_036_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 2 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION2_DESTINE_036_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 2 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION2_DESTINE_036_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 2 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION2_DESTINE_036_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 2 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION2_DESTINE_036_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 2 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION2_DESTINE_036_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION2_DESTINE_036_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 2 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_DESTINE_036_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_DESTINE_036_INIT -!> @see GRIB2_SECTION2_DESTINE_036_ALLOCATE -!> @see GRIB2_SECTION2_DESTINE_036_PRESET -!> @see GRIB2_SECTION2_DESTINE_036_RUNTIME -!> @see GRIB2_SECTION2_DESTINE_036_TO_BE_ENCODED -!> @see GRIB2_SECTION2_DESTINE_036_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_DESTINE_036_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_DESTINE_036_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_DESTINE_036_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'LOCAL_USE_SECTION' - THIS%KIND_ = 'DESTINE_2.36' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_DESTINE_036_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 2 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_DESTINE_036_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_DESTINE_036_ALLOCATE -!> @see GRIB2_SECTION2_DESTINE_036_INIT -!> @see GRIB2_SECTION2_DESTINE_036_PRESET -!> @see GRIB2_SECTION2_DESTINE_036_RUNTIME -!> @see GRIB2_SECTION2_DESTINE_036_TO_BE_ENCODED -!> @see GRIB2_SECTION2_DESTINE_036_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_DESTINE_036_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_DESTINE_036_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_DESTINE_036_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Enable section 2 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'setLocalDefinition', 1 ) - - ! Set the number of local definitions - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'localDefinitionNumber', 36 ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'not implemented' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_DESTINE_036_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 2 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_DESTINE_036_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_DESTINE_036_PRESET -!> @see GRIB2_SECTION2_DESTINE_036_ALLOCATE -!> @see GRIB2_SECTION2_DESTINE_036_INIT -!> @see GRIB2_SECTION2_DESTINE_036_RUNTIME -!> @see GRIB2_SECTION2_DESTINE_036_TO_BE_ENCODED -!> @see GRIB2_SECTION2_DESTINE_036_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_DESTINE_036_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_DESTINE_036_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_DESTINE_036_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Preset the section with the mars keywords - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'stream', MSG%STREAM ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'type', MSG%TYPE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'class', MSG%CLASS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'expver', MSG%EXPVER ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'anoffset', MSG%ANOFFSET ) - - ! Eventually other metadata needs to be set according to the specific section 2 type - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'not implemented' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_DESTINE_036_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 2 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 2 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION2_DESTINE_036_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_DESTINE_036_RUNTIME -!> @see GRIB2_SECTION2_DESTINE_036_ALLOCATE -!> @see GRIB2_SECTION2_DESTINE_036_INIT -!> @see GRIB2_SECTION2_DESTINE_036_PRESET -!> @see GRIB2_SECTION2_DESTINE_036_TO_BE_ENCODED -!> @see GRIB2_SECTION2_DESTINE_036_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_DESTINE_036_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_DESTINE_036_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_DESTINE_036_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 2 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'not implemented' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_DESTINE_036_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 2 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 2 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION2_DESTINE_036_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_DESTINE_036_INIT -!> @see GRIB2_SECTION2_DESTINE_036_ALLOCATE -!> @see GRIB2_SECTION2_DESTINE_036_PRESET -!> @see GRIB2_SECTION2_DESTINE_036_RUNTIME -!> @see GRIB2_SECTION2_DESTINE_036_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION2_DESTINE_036_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION2_DESTINE_036_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION2_DESTINE_036_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION2_DESTINE_036_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION2_DESTINE_036_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_factory_mod.F90 deleted file mode 100644 index b61583cee..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section2/grib2_section2_factory_mod.F90 +++ /dev/null @@ -1,659 +0,0 @@ -!> -!> @file grib2_section2_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Section 2 objects. -!> -!> The `GRIB2_SECTION2_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Section 2 objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION2_000_MOD::GRIB2_SECTION2_000_T -!> - @dependency [TYPE] GRIB2_SECTION2_001_MOD::GRIB2_SECTION2_001_T -!> - @dependency [TYPE] GRIB2_SECTION2_007_MOD::GRIB2_SECTION2_007_T -!> - @dependency [TYPE] GRIB2_SECTION2_009_MOD::GRIB2_SECTION2_009_T -!> - @dependency [TYPE] GRIB2_SECTION2_015_MOD::GRIB2_SECTION2_015_T -!> - @dependency [TYPE] GRIB2_SECTION2_018_MOD::GRIB2_SECTION2_018_T -!> - @dependency [TYPE] GRIB2_SECTION2_023_MOD::GRIB2_SECTION2_023_T -!> - @dependency [TYPE] GRIB2_SECTION2_024_MOD::GRIB2_SECTION2_024_T -!> - @dependency [TYPE] GRIB2_SECTION2_026_MOD::GRIB2_SECTION2_026_T -!> - @dependency [TYPE] GRIB2_SECTION2_027_MOD::GRIB2_SECTION2_027_T -!> - @dependency [TYPE] GRIB2_SECTION2_030_MOD::GRIB2_SECTION2_030_T -!> - @dependency [TYPE] GRIB2_SECTION2_036_MOD::GRIB2_SECTION2_036_T -!> - @dependency [TYPE] GRIB2_SECTION2_192_MOD::GRIB2_SECTION2_192_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section0_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION2_FACTORY_MOD' -MODULE GRIB2_SECTION2_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the section2 number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: SECTION2_KEY='template-number' - - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_SECTION2 - MODULE PROCEDURE MAKE_GRIB2_SECTION2_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_SECTION2 -PUBLIC :: DESTROY_GRIB2_SECTION2 - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Section 2 objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Section 2 object -!> based on the provided parameters. It assigns the proper type (`GRIB2_SECTION0_000_T`) -!> to the `GRIB_SECTION2` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB_SECTION2 The GRIB2 Section 2 object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Section 2 object. -!> @param [in] PARAMS The model parameters structure of type `MODEL_PAR_T`. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 2 object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_SECTION2_000_T` -!> - `GRIB2_SECTION2_001_T` -!> - `GRIB2_SECTION2_007_T` -!> - `GRIB2_SECTION2_009_T` -!> - `GRIB2_SECTION2_015_T` -!> - `GRIB2_SECTION2_018_T` -!> - `GRIB2_SECTION2_023_T` -!> - `GRIB2_SECTION2_024_T` -!> - `GRIB2_SECTION2_026_T` -!> - `GRIB2_SECTION2_027_T` -!> - `GRIB2_SECTION2_030_T` -!> - `GRIB2_SECTION2_036_T` -!> - `GRIB2_SECTION2_192_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION2_000_MOD::GRIB2_SECTION2_000_T -!> - @dependency [TYPE] GRIB2_SECTION2_001_MOD::GRIB2_SECTION2_001_T -!> - @dependency [TYPE] GRIB2_SECTION2_007_MOD::GRIB2_SECTION2_007_T -!> - @dependency [TYPE] GRIB2_SECTION2_009_MOD::GRIB2_SECTION2_009_T -!> - @dependency [TYPE] GRIB2_SECTION2_015_MOD::GRIB2_SECTION2_015_T -!> - @dependency [TYPE] GRIB2_SECTION2_018_MOD::GRIB2_SECTION2_018_T -!> - @dependency [TYPE] GRIB2_SECTION2_023_MOD::GRIB2_SECTION2_023_T -!> - @dependency [TYPE] GRIB2_SECTION2_024_MOD::GRIB2_SECTION2_024_T -!> - @dependency [TYPE] GRIB2_SECTION2_026_MOD::GRIB2_SECTION2_026_T -!> - @dependency [TYPE] GRIB2_SECTION2_027_MOD::GRIB2_SECTION2_027_T -!> - @dependency [TYPE] GRIB2_SECTION2_030_MOD::GRIB2_SECTION2_030_T -!> - @dependency [TYPE] GRIB2_SECTION2_036_MOD::GRIB2_SECTION2_036_T -!> - @dependency [TYPE] GRIB2_SECTION2_192_MOD::GRIB2_SECTION2_192_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION2_000_T -!> @see GRIB2_SECTION2_001_T -!> @see GRIB2_SECTION2_007_T -!> @see GRIB2_SECTION2_009_T -!> @see GRIB2_SECTION2_015_T -!> @see GRIB2_SECTION2_018_T -!> @see GRIB2_SECTION2_023_T -!> @see GRIB2_SECTION2_024_T -!> @see GRIB2_SECTION2_026_T -!> @see GRIB2_SECTION2_027_T -!> @see GRIB2_SECTION2_030_T -!> @see GRIB2_SECTION2_036_T -!> @see GRIB2_SECTION2_192_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_SECTION2_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_SECTION2_CFG( GRIB2_SECTION2, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION2_DESTINE_001_MOD, ONLY: GRIB2_SECTION2_DESTINE_001_T - USE :: GRIB2_SECTION2_DESTINE_036_MOD, ONLY: GRIB2_SECTION2_DESTINE_036_T - USE :: GRIB2_SECTION2_001_MOD, ONLY: GRIB2_SECTION2_001_T - USE :: GRIB2_SECTION2_014_MOD, ONLY: GRIB2_SECTION2_014_T - USE :: GRIB2_SECTION2_015_MOD, ONLY: GRIB2_SECTION2_015_T - USE :: GRIB2_SECTION2_024_MOD, ONLY: GRIB2_SECTION2_024_T - USE :: GRIB2_SECTION2_036_MOD, ONLY: GRIB2_SECTION2_036_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION2 - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_2=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_SECTION2_TYPE_FROM_CFG( CFG, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE (1) - - ALLOCATE( GRIB2_SECTION2_001_T::GRIB2_SECTION2, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (14) - - ALLOCATE( GRIB2_SECTION2_014_T::GRIB2_SECTION2, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (15) - - ALLOCATE( GRIB2_SECTION2_015_T::GRIB2_SECTION2, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (24) - - ALLOCATE( GRIB2_SECTION2_024_T::GRIB2_SECTION2, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (36) - - ALLOCATE( GRIB2_SECTION2_036_T::GRIB2_SECTION2, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (1001) - - ALLOCATE( GRIB2_SECTION2_DESTINE_001_T::GRIB2_SECTION2, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (1036) - - ALLOCATE( GRIB2_SECTION2_DESTINE_036_T::GRIB2_SECTION2, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_2 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_SECTION2%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to read section2 type' ) - CASE (ERRFLAG_UNKNOWN_SECTION_2) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown section2 number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section2 number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing section2 number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_SECTION2_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Section 2 structure. -!> -!> This function takes a GRIB2 Section 2 object (`GRIB2_SECTION2`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_SECTION2 The GRIB2 Section 2 object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION2 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_SECTION2' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_SECTION2( GRIB2_SECTION2, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION2 - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_SECTION2), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_SECTION2%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_SECTION2, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'section0 to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating section0 number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing section0' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_SECTION2 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Section 2 object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 2 object. -!> @param [out] SECTION2_TYPE Identifier of the section2 type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION2 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_SECTION2_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_SECTION2_TYPE_FROM_CFG( CFG, SECTION2_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KIND=JPIB_K), INTENT(OUT) :: SECTION2_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CSECTION2_TYPE - LOGICAL :: HAS_SECTION2 - LOGICAL :: SECTION2_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - SECTION2_TYPE = -1_JPIB_K - - !> Check if configuration has the SECTION2 key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, SECTION2_KEY, HAS_SECTION2, HOOKS ) - - !> Read the SECTION2 template number - IF ( HAS_SECTION2 ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, SECTION2_KEY, CSECTION2_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CSECTION2_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CSECTION2_TYPE, SECTION2_IS_INTEGER, HOOKS ) - IF ( SECTION2_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CSECTION2_TYPE, SECTION2_TYPE, HOOKS ) - ELSE - ! TODO: Somehow decide automatically whcih SECTION2 to use. String can be - ! a label for the method to use. - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - ENDIF - DEALLOCATE(CSECTION2_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SECTION2 ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating SECTION2 number' ) - IF ( .NOT.ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_SECTION2_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION2_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/CMakeLists.txt deleted file mode 100644 index a6fb5ff00..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION3_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section3 sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION3_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION3_DIR}/grib2_section3_040_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION3_DIR}/grib2_section3_050_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION3_DIR}/grib2_section3_101_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION3_DIR}/grib2_section3_150_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION3_DIR}/grib2_section3_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION3_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION3_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION3_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_000_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_000_mod.F90 deleted file mode 100644 index dd2ef21e9..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_000_mod.F90 +++ /dev/null @@ -1,913 +0,0 @@ -!> -!> @file grib2_section3_000_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 3 operations. -!> -!> The `GRIB2_SECTION3_000_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 3 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 3 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION3_000_INIT -!> - @see GRIB2_SECTION3_000_ALLOCATE -!> - @see GRIB2_SECTION3_000_PRESET -!> - @see GRIB2_SECTION3_000_RUNTIME -!> - @see GRIB2_SECTION3_000_TO_BE_ENCODED -!> - @see GRIB2_SECTION3_000_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section3_000_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION3_000_MOD' -MODULE GRIB2_SECTION3_000_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 3 handler. -!> -!> The `GRIB2_SECTION3_000_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 3 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION3_000_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 3 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION3_000_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 3 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION3_000_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 3 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION3_000_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 3 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION3_000_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 3 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION3_000_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION3_000_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 3 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION3_000_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_000_INIT -!> @see GRIB2_SECTION3_000_ALLOCATE -!> @see GRIB2_SECTION3_000_PRESET -!> @see GRIB2_SECTION3_000_RUNTIME -!> @see GRIB2_SECTION3_000_TO_BE_ENCODED -!> @see GRIB2_SECTION3_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_000_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_000_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'GRID_DEFINITION_SECTION' - THIS%KIND_ = '3.0' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_000_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 3 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_000_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_000_ALLOCATE -!> @see GRIB2_SECTION3_000_INIT -!> @see GRIB2_SECTION3_000_PRESET -!> @see GRIB2_SECTION3_000_RUNTIME -!> @see GRIB2_SECTION3_000_TO_BE_ENCODED -!> @see GRIB2_SECTION3_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_000_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_000_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_LL_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - INTEGER(KIND=JPIB_K) :: PARAM_SZ - INTEGER(KIND=JPIB_K) :: EXPECTED_SZ - - !> Local variables - INTEGER(KIND=JPIB_K) :: NPTS - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_PL_ARRAY_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_PL_ARRAY_WRONG_SIZE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA_NOT_ASSOCIATED ) - - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(GEO), ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED ) - - ! Enable section 3 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridDefinitionTemplateNumber', 0 ) - - ! Configure the representation - SELECT TYPE ( R => GEO ) - - CLASS IS (REGULAR_LL_T) - - ! TODO(MIVAL): to be fixed this is only a draft implementation - ! Set the specific metadata for a regular_ll grid - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridType','regular_ll' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'Nj', R%NUMBER_OF_POINTS_ALONG_A_MERIDIAN ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'Ni', R%NUMBER_OF_POINTS_ALONG_A_PARALLEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'latitudeOfFirstGridPointInDegrees', R%LAT_FIRST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'longitudeOfFirstGridPointInDegrees', R%LON_FIRST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'latitudeOfLastGridPointInDegrees', R%LAT_LAST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'longitudeOfLastGridPointInDegrees', R%LON_LAST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'iDirectionIncrementInDegrees', R%IDIR_INC ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'jDirectionIncrementInDegrees', R%JDIR_INC) - - CLASS DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - END SELECT - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - CHARACTER(LEN=32) :: CTMP1 - CHARACTER(LEN=32) :: CTMP2 - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_METADATA_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'metadata not associated' ) - CASE (ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'geometry description not associated' ) - CASE (ERRFLAG_GEOMETRY_PL_ARRAY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'geometry pl array not associated' ) - CASE (ERRFLAG_NOT_IMPLEMENTED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'not implemented' ) - CASE (ERRFLAG_METADATA) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'metadata error' ) - CASE (ERRFLAG_GEOMETRY_PL_ARRAY_WRONG_SIZE) - CTMP1 = REPEAT(' ',32) - WRITE(CTMP1,'(I32)') PARAM_SZ - CTMP2 = REPEAT(' ',32) - WRITE(CTMP2,'(I32)') EXPECTED_SZ - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong size of PL array or N has a invalid number' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Param size: '//TRIM(ADJUSTL(CTMP1)) ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Expected size: '//TRIM(ADJUSTL(CTMP2)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_000_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 3 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_000_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_000_PRESET -!> @see GRIB2_SECTION3_000_ALLOCATE -!> @see GRIB2_SECTION3_000_INIT -!> @see GRIB2_SECTION3_000_RUNTIME -!> @see GRIB2_SECTION3_000_TO_BE_ENCODED -!> @see GRIB2_SECTION3_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_000_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_000_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - INTEGER(KIND=JPIB_K) :: NPTS - INTEGER(KIND=JPIB_K) :: NLAT - INTEGER(KIND=JPIB_K) :: NLAT_BETWEEN_POLE_AND_EQUATOR - REAL(KIND=JPRD_K) :: LAT_FIRST_GP_DEG - REAL(KIND=JPRD_K) :: LAT_LAST_GP_DEG - REAL(KIND=JPRD_K) :: LON_FIRST_GP_DEG - REAL(KIND=JPRD_K) :: LON_LAST_GP_DEG - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_OUT_OF_BOUNDS=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_000_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 3 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_000_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_000_RUNTIME -!> @see GRIB2_SECTION3_000_ALLOCATE -!> @see GRIB2_SECTION3_000_INIT -!> @see GRIB2_SECTION3_000_PRESET -!> @see GRIB2_SECTION3_000_TO_BE_ENCODED -!> @see GRIB2_SECTION3_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_000_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_000_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 3 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_000_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 3 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 3 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION3_000_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_000_INIT -!> @see GRIB2_SECTION3_000_ALLOCATE -!> @see GRIB2_SECTION3_000_PRESET -!> @see GRIB2_SECTION3_000_RUNTIME -!> @see GRIB2_SECTION3_000_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_000_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_000_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_000_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION3_000_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_040_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_040_mod.F90 deleted file mode 100644 index ab91ed7a4..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_040_mod.F90 +++ /dev/null @@ -1,936 +0,0 @@ -!> -!> @file grib2_section3_040_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 3 operations. -!> -!> The `GRIB2_SECTION3_040_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 3 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 3 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION3_040_INIT -!> - @see GRIB2_SECTION3_040_ALLOCATE -!> - @see GRIB2_SECTION3_040_PRESET -!> - @see GRIB2_SECTION3_040_RUNTIME -!> - @see GRIB2_SECTION3_040_TO_BE_ENCODED -!> - @see GRIB2_SECTION3_040_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section3_040_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION3_040_MOD' -MODULE GRIB2_SECTION3_040_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 3 handler. -!> -!> The `GRIB2_SECTION3_040_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 3 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION3_040_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 3 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION3_040_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 3 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION3_040_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 3 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION3_040_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 3 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION3_040_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 3 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION3_040_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION3_040_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 3 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION3_040_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_040_INIT -!> @see GRIB2_SECTION3_040_ALLOCATE -!> @see GRIB2_SECTION3_040_PRESET -!> @see GRIB2_SECTION3_040_RUNTIME -!> @see GRIB2_SECTION3_040_TO_BE_ENCODED -!> @see GRIB2_SECTION3_040_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_040_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_040_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_040_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'GRID_DEFINITION_SECTION' - THIS%KIND_ = '3.40' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_040_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 3 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_040_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_040_ALLOCATE -!> @see GRIB2_SECTION3_040_INIT -!> @see GRIB2_SECTION3_040_PRESET -!> @see GRIB2_SECTION3_040_RUNTIME -!> @see GRIB2_SECTION3_040_TO_BE_ENCODED -!> @see GRIB2_SECTION3_040_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_040_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_040_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: REDUCED_GG_T - USE :: REPRESENTATIONS_MOD, ONLY: REGULAR_GG_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_040_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - INTEGER(KIND=JPIB_K) :: PARAM_SZ - INTEGER(KIND=JPIB_K) :: EXPECTED_SZ - - !> Local variables - INTEGER(KIND=JPIB_K) :: NPTS - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_PL_ARRAY_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_PL_ARRAY_WRONG_SIZE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA_NOT_ASSOCIATED ) - - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(GEO), ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED ) - - ! Enable section 3 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridDefinitionTemplateNumber', 40 ) - - ! Configure the representation - SELECT TYPE ( R => GEO ) - - CLASS IS (REGULAR_GG_T) - - - ! Set the specific metadata for a regular_gg grid - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridType','regular_gg' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'truncateDegrees', R%TRUNCATE_DEGREES ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfPointsAlongAMeridian', R%NUMBER_OF_POINTS_ALONG_A_MERIDIAN ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfPointsAlongAParallel', R%NUMBER_OF_POINTS_ALONG_A_PARALLEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'latitudeOfFirstGridPointInDegrees', R%LAT_FIRST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'longitudeOfFirstGridPointInDegrees', R%LON_FIRST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'latitudeOfLastGridPointInDegrees', R%LAT_LAST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'longitudeOfLastGridPointInDegrees', R%LON_LAST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfParallelsBetweenAPoleAndTheEquator', R%NUMBER_OF_PARALLELS_BETWEEN_POLE_AND_EQUATOR ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'iDirectionIncrementInDegrees', R%IDIR_INC ) - - CLASS IS (REDUCED_GG_T) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(R%PL), ERRFLAG_GEOMETRY_PL_ARRAY_NOT_ASSOCIATED ) - PARAM_SZ = SIZE(R%PL)/2 - EXPECTED_SZ = R%NUMBER_OF_PARALLELS_BETWEEN_POLE_AND_EQUATOR - PP_DEBUG_CRITICAL_COND_THROW( EXPECTED_SZ.NE.PARAM_SZ, ERRFLAG_GEOMETRY_PL_ARRAY_WRONG_SIZE ) - - ! Set the specific metadata for a reduced_gg grid - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridType','reduced_gg' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'interpretationOfNumberOfPoints', 1_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'truncateDegrees', R%TRUNCATE_DEGREES ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfPointsAlongAMeridian', R%NUMBER_OF_POINTS_ALONG_A_MERIDIAN ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'latitudeOfFirstGridPointInDegrees', R%LAT_FIRST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'longitudeOfFirstGridPointInDegrees', R%LON_FIRST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'latitudeOfLastGridPointInDegrees', R%LAT_LAST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'longitudeOfLastGridPointInDegrees', R%LON_LAST_GP_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfParallelsBetweenAPoleAndTheEquator', R%NUMBER_OF_PARALLELS_BETWEEN_POLE_AND_EQUATOR ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pl', R%PL ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'iDirectionIncrement' ) - - CLASS DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - END SELECT - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - CHARACTER(LEN=32) :: CTMP1 - CHARACTER(LEN=32) :: CTMP2 - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_METADATA_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'metadata not associated' ) - CASE (ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'geometry description not associated' ) - CASE (ERRFLAG_GEOMETRY_PL_ARRAY_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'geometry pl array not associated' ) - CASE (ERRFLAG_NOT_IMPLEMENTED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'not implemented' ) - CASE (ERRFLAG_METADATA) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'metadata error' ) - CASE (ERRFLAG_GEOMETRY_PL_ARRAY_WRONG_SIZE) - CTMP1 = REPEAT(' ',32) - WRITE(CTMP1,'(I32)') PARAM_SZ - CTMP2 = REPEAT(' ',32) - WRITE(CTMP2,'(I32)') EXPECTED_SZ - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Wrong size of PL array or N has a invalid number' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Param size: '//TRIM(ADJUSTL(CTMP1)) ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Expected size: '//TRIM(ADJUSTL(CTMP2)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_040_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 3 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_040_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_040_PRESET -!> @see GRIB2_SECTION3_040_ALLOCATE -!> @see GRIB2_SECTION3_040_INIT -!> @see GRIB2_SECTION3_040_RUNTIME -!> @see GRIB2_SECTION3_040_TO_BE_ENCODED -!> @see GRIB2_SECTION3_040_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_040_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_040_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_040_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - INTEGER(KIND=JPIB_K) :: NPTS - INTEGER(KIND=JPIB_K) :: NLAT - INTEGER(KIND=JPIB_K) :: NLAT_BETWEEN_POLE_AND_EQUATOR - REAL(KIND=JPRD_K) :: LAT_FIRST_GP_DEG - REAL(KIND=JPRD_K) :: LAT_LAST_GP_DEG - REAL(KIND=JPRD_K) :: LON_FIRST_GP_DEG - REAL(KIND=JPRD_K) :: LON_LAST_GP_DEG - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_OUT_OF_BOUNDS=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_040_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 3 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_040_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_040_RUNTIME -!> @see GRIB2_SECTION3_040_ALLOCATE -!> @see GRIB2_SECTION3_040_INIT -!> @see GRIB2_SECTION3_040_PRESET -!> @see GRIB2_SECTION3_040_TO_BE_ENCODED -!> @see GRIB2_SECTION3_040_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_040_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_040_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_040_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 3 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_040_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 3 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 3 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION3_040_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_040_INIT -!> @see GRIB2_SECTION3_040_ALLOCATE -!> @see GRIB2_SECTION3_040_PRESET -!> @see GRIB2_SECTION3_040_RUNTIME -!> @see GRIB2_SECTION3_040_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_040_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_040_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_040_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_040_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION3_040_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_050_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_050_mod.F90 deleted file mode 100644 index 422c36f8b..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_050_mod.F90 +++ /dev/null @@ -1,894 +0,0 @@ -!> -!> @file grib2_section3_050_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 3 operations. -!> -!> The `GRIB2_SECTION3_050_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 3 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 3 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION3_050_INIT -!> - @see GRIB2_SECTION3_050_ALLOCATE -!> - @see GRIB2_SECTION3_050_PRESET -!> - @see GRIB2_SECTION3_050_RUNTIME -!> - @see GRIB2_SECTION3_050_TO_BE_ENCODED -!> - @see GRIB2_SECTION3_050_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section3_050_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION3_050_MOD' -MODULE GRIB2_SECTION3_050_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 3 handler. -!> -!> The `GRIB2_SECTION3_050_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 3 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION3_050_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 3 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION3_050_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 3 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION3_050_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 3 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION3_050_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 3 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION3_050_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 3 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION3_050_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION3_050_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 3 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION3_050_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_050_INIT -!> @see GRIB2_SECTION3_050_ALLOCATE -!> @see GRIB2_SECTION3_050_PRESET -!> @see GRIB2_SECTION3_050_RUNTIME -!> @see GRIB2_SECTION3_050_TO_BE_ENCODED -!> @see GRIB2_SECTION3_050_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_050_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_050_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_050_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'GRID_DEFINITION_SECTION' - THIS%KIND_ = '3.50' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_050_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 3 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_050_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_050_ALLOCATE -!> @see GRIB2_SECTION3_050_INIT -!> @see GRIB2_SECTION3_050_PRESET -!> @see GRIB2_SECTION3_050_RUNTIME -!> @see GRIB2_SECTION3_050_TO_BE_ENCODED -!> @see GRIB2_SECTION3_050_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_050_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_050_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: SH_T - USE :: REPRESENTATIONS_MOD, ONLY: STRETCHED_SH_T - USE :: REPRESENTATIONS_MOD, ONLY: STRETCHED_ROTATED_SH_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_050_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(GEO), ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED ) - - ! Enable section 3 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridDefinitionTemplateNumber', 50 ) - - ! Configure the representation - SELECT TYPE ( R => GEO ) - - CLASS IS (SH_T) - - ! Set the specific metadata for a spherical harmonics representation - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridType', 'sh' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pentagonalResolutionParameterJ', R%PENTAGONAL_RESOLUTIONS_PAR_J ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pentagonalResolutionParameterK', R%PENTAGONAL_RESOLUTIONS_PAR_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pentagonalResolutionParameterM', R%PENTAGONAL_RESOLUTIONS_PAR_M ) - - CLASS IS (STRETCHED_SH_T) - - ! Set the specific metadata for a spherical harmonics representation - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridType', 'stretched_sh' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'stretchingFactor', R%STRETCH_FACTOR ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pentagonalResolutionParameterJ', R%PENTAGONAL_RESOLUTIONS_PAR_J ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pentagonalResolutionParameterK', R%PENTAGONAL_RESOLUTIONS_PAR_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pentagonalResolutionParameterM', R%PENTAGONAL_RESOLUTIONS_PAR_M ) - - CLASS IS (STRETCHED_ROTATED_SH_T) - - ! Set the specific metadata for a spherical harmonics representation - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridType', 'stretched_rotated_sh' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'latitudeOfStretchingPoleInDegrees', R%LAT_STRET_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'longitudeOfStretchingPoleInDegrees', R%LON_STRET_DEG ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'stretchingFactor', R%STRETCH_FACTOR ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pentagonalResolutionParameterJ', R%PENTAGONAL_RESOLUTIONS_PAR_J ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pentagonalResolutionParameterK', R%PENTAGONAL_RESOLUTIONS_PAR_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pentagonalResolutionParameterM', R%PENTAGONAL_RESOLUTIONS_PAR_M ) - - CLASS DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - END SELECT - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_METADATA_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'metadata not associated' ) - CASE ( ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'geometry description not associated' ) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'not implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_050_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 3 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_050_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_050_PRESET -!> @see GRIB2_SECTION3_050_ALLOCATE -!> @see GRIB2_SECTION3_050_INIT -!> @see GRIB2_SECTION3_050_RUNTIME -!> @see GRIB2_SECTION3_050_TO_BE_ENCODED -!> @see GRIB2_SECTION3_050_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_050_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_050_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_050_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_050_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 3 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_050_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_050_RUNTIME -!> @see GRIB2_SECTION3_050_ALLOCATE -!> @see GRIB2_SECTION3_050_INIT -!> @see GRIB2_SECTION3_050_PRESET -!> @see GRIB2_SECTION3_050_TO_BE_ENCODED -!> @see GRIB2_SECTION3_050_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_050_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_050_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_050_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 3 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_050_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 3 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 3 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION3_050_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_050_INIT -!> @see GRIB2_SECTION3_050_ALLOCATE -!> @see GRIB2_SECTION3_050_PRESET -!> @see GRIB2_SECTION3_050_RUNTIME -!> @see GRIB2_SECTION3_050_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_050_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_050_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_050_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_050_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION3_050_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_101_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_101_mod.F90 deleted file mode 100644 index 80b8b0eb3..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_101_mod.F90 +++ /dev/null @@ -1,878 +0,0 @@ -!> -!> @file grib2_section3_101_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 3 operations. -!> -!> The `GRIB2_SECTION3_101_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 3 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 3 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION3_101_INIT -!> - @see GRIB2_SECTION3_101_ALLOCATE -!> - @see GRIB2_SECTION3_101_PRESET -!> - @see GRIB2_SECTION3_101_RUNTIME -!> - @see GRIB2_SECTION3_101_TO_BE_ENCODED -!> - @see GRIB2_SECTION3_101_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section3_101_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION3_101_MOD' -MODULE GRIB2_SECTION3_101_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 3 handler. -!> -!> The `GRIB2_SECTION3_101_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 3 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION3_101_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 3 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION3_101_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 3 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION3_101_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 3 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION3_101_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 3 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION3_101_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 3 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION3_101_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION3_101_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 3 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION3_101_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_101_INIT -!> @see GRIB2_SECTION3_101_ALLOCATE -!> @see GRIB2_SECTION3_101_PRESET -!> @see GRIB2_SECTION3_101_RUNTIME -!> @see GRIB2_SECTION3_101_TO_BE_ENCODED -!> @see GRIB2_SECTION3_101_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_101_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_101_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_101_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'GRID_DEFINITION_SECTION' - THIS%KIND_ = '3.101' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_101_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 3 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_101_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_101_ALLOCATE -!> @see GRIB2_SECTION3_101_INIT -!> @see GRIB2_SECTION3_101_PRESET -!> @see GRIB2_SECTION3_101_RUNTIME -!> @see GRIB2_SECTION3_101_TO_BE_ENCODED -!> @see GRIB2_SECTION3_101_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_101_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_101_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_101_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Local variables - INTEGER(KIND=JPIB_K) :: NPTS - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_OUT_OF_BOUNDS=3_JPIB_K - ! INTEGER(KIND=JPIB_K). PARAMETER :: ERRFLAG_SEARCH_GRID_DEFINITION_INDEX=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - -#if 0 - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(PAR%GEO%SH), ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED ) - - ! Initialize the index (In general this index should com from a search procedure that uses the MARS - ! keyword "grid" to look for the index of the proper gg grid inside the parametrization) - IDX = 1 - - ! Search the index of the gg grid inside the parametrization. MSG%GRID is the mars keyword "grid" i.e. grid=O800 in this case - ! PP_TRYCALL(ERRFLAG_SEARCH_GRID_DEFINITION_INDEX) PAR%GEO%SH%SEARCH( IDX, MSG%GRID, HOOKS ) - - ! Check that the index is correct - PP_DEBUG_CRITICAL_COND_THROW( IDX < 1 .OR. IDX > SIZE(PAR%GEO%SH), ERRFLAG_GEOMETRY_DESCRIPTION_OUT_OF_BOUNDS ) - - ! Extract the number of points and the number of latitudes - NPTS = ! TODO: Extract the number of points from the geometry description - - ! Enable section 3 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'sourceOfGRidDefinition', 0 ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfDataPoints', NPTS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfOctectsForNumberOfPoints', 0 ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'interpretationOfNumberOfPoints', 0 ) - - ! Set the number of local definitions - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridDefinitionTemplateNumber', 101 ) -#endif - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'geometry description not associated' ) - CASE ( ERRFLAG_GEOMETRY_DESCRIPTION_OUT_OF_BOUNDS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'geometry description out of bounds' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_101_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 3 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_101_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_101_PRESET -!> @see GRIB2_SECTION3_101_ALLOCATE -!> @see GRIB2_SECTION3_101_INIT -!> @see GRIB2_SECTION3_101_RUNTIME -!> @see GRIB2_SECTION3_101_TO_BE_ENCODED -!> @see GRIB2_SECTION3_101_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_101_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_101_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_101_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_101_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 3 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_101_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_101_RUNTIME -!> @see GRIB2_SECTION3_101_ALLOCATE -!> @see GRIB2_SECTION3_101_INIT -!> @see GRIB2_SECTION3_101_PRESET -!> @see GRIB2_SECTION3_101_TO_BE_ENCODED -!> @see GRIB2_SECTION3_101_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_101_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_101_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_101_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 3 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_101_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 3 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 3 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION3_101_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_101_INIT -!> @see GRIB2_SECTION3_101_ALLOCATE -!> @see GRIB2_SECTION3_101_PRESET -!> @see GRIB2_SECTION3_101_RUNTIME -!> @see GRIB2_SECTION3_101_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_101_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_101_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_101_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_101_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION3_101_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_150_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_150_mod.F90 deleted file mode 100644 index cafcb6b90..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_150_mod.F90 +++ /dev/null @@ -1,895 +0,0 @@ -!> -!> @file grib2_section3_150_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 3 operations. -!> -!> The `GRIB2_SECTION3_150_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 3 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 3 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION3_150_INIT -!> - @see GRIB2_SECTION3_150_ALLOCATE -!> - @see GRIB2_SECTION3_150_PRESET -!> - @see GRIB2_SECTION3_150_RUNTIME -!> - @see GRIB2_SECTION3_150_TO_BE_ENCODED -!> - @see GRIB2_SECTION3_150_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section3_150_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION3_150_MOD' -MODULE GRIB2_SECTION3_150_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 3 handler. -!> -!> The `GRIB2_SECTION3_150_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 3 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION3_150_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 3 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION3_150_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 3 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION3_150_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 3 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION3_150_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 3 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION3_150_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 3 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION3_150_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION3_150_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 3 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION3_150_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_150_INIT -!> @see GRIB2_SECTION3_150_ALLOCATE -!> @see GRIB2_SECTION3_150_PRESET -!> @see GRIB2_SECTION3_150_RUNTIME -!> @see GRIB2_SECTION3_150_TO_BE_ENCODED -!> @see GRIB2_SECTION3_150_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_150_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_150_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_150_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'GRID_DEFINITION_SECTION' - THIS%KIND_ = '3.150' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_150_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 3 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_150_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_150_ALLOCATE -!> @see GRIB2_SECTION3_150_INIT -!> @see GRIB2_SECTION3_150_PRESET -!> @see GRIB2_SECTION3_150_RUNTIME -!> @see GRIB2_SECTION3_150_TO_BE_ENCODED -!> @see GRIB2_SECTION3_150_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_150_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_150_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: REPRESENTATIONS_MOD, ONLY: HEALPIX_T - USE :: ENUMERATORS_MOD, ONLY: IORDERING_CONVENTION2CORDERING_CONVENTION - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_150_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - INTEGER(KIND=JPIB_K) :: PARAM_SZ - INTEGER(KIND=JPIB_K) :: EXPECTED_SZ - - !> Local variables - INTEGER(KIND=JPIB_K) :: NPTS - CHARACTER(LEN=16) :: VALUE_STR - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_TO_STRING=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(GEO), ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED ) - - ! Enable section 3 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridDefinitionTemplateNumber', 150_JPIB_K ) - - ! Configure the representation - SELECT TYPE ( R => GEO ) - - CLASS IS (HEALPIX_T) - - ! Set the representation type - VALUE_STR = REPEAT( ' ', LEN(VALUE_STR) ) - PP_TRYCALL(ERRFLAG_CONVERT_TO_STRING) IORDERING_CONVENTION2CORDERING_CONVENTION( R%ORDERING_CONVENTION, VALUE_STR, HOOKS ) - - ! Set the specific metadata for a regular_gg grid - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'gridType','healpix' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'nside', R%NSIDE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'orderingConvention', TRIM(ADJUSTL(VALUE_STR)) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'longitudeOfFirstGridPointInDegrees', R%LONGITUDE_OF_FIRST_GRID_POINT_IN_DEGREES ) - - CLASS DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - END SELECT - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_METADATA_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'metadata not associated' ) - CASE (ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'geometry description not associated' ) - CASE (ERRFLAG_NOT_IMPLEMENTED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'not implemented' ) - CASE (ERRFLAG_METADATA) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'metadata error' ) - CASE (ERRFLAG_CONVERT_TO_STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting to string HEALPix ordering convention' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_150_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 3 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_150_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_150_PRESET -!> @see GRIB2_SECTION3_150_ALLOCATE -!> @see GRIB2_SECTION3_150_INIT -!> @see GRIB2_SECTION3_150_RUNTIME -!> @see GRIB2_SECTION3_150_TO_BE_ENCODED -!> @see GRIB2_SECTION3_150_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_150_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_150_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_150_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - INTEGER(KIND=JPIB_K) :: NPTS - INTEGER(KIND=JPIB_K) :: NLAT - INTEGER(KIND=JPIB_K) :: NLAT_BETWEEN_POLE_AND_EQUATOR - REAL(KIND=JPRD_K) :: LAT_FIRST_GP_DEG - REAL(KIND=JPRD_K) :: LAT_LAST_GP_DEG - REAL(KIND=JPRD_K) :: LON_FIRST_GP_DEG - REAL(KIND=JPRD_K) :: LON_LAST_GP_DEG - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GEOMETRY_DESCRIPTION_OUT_OF_BOUNDS=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_150_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 3 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 3 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION3_150_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_150_RUNTIME -!> @see GRIB2_SECTION3_150_ALLOCATE -!> @see GRIB2_SECTION3_150_INIT -!> @see GRIB2_SECTION3_150_PRESET -!> @see GRIB2_SECTION3_150_TO_BE_ENCODED -!> @see GRIB2_SECTION3_150_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_150_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_150_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_150_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Nothing to do for section 3 runtime - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_150_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 3 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 3 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION3_150_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_150_INIT -!> @see GRIB2_SECTION3_150_ALLOCATE -!> @see GRIB2_SECTION3_150_PRESET -!> @see GRIB2_SECTION3_150_RUNTIME -!> @see GRIB2_SECTION3_150_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION3_150_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION3_150_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION3_150_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION3_150_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION3_150_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_factory_mod.F90 deleted file mode 100644 index 4d75d26af..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section3/grib2_section3_factory_mod.F90 +++ /dev/null @@ -1,599 +0,0 @@ -!> -!> @file grib2_section3_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Section 3 objects. -!> -!> The `GRIB2_SECTION3_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Section 3 objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION3_040_MOD::GRIB2_SECTION3_040_T -!> - @dependency [TYPE] GRIB2_SECTION3_050_MOD::GRIB2_SECTION3_050_T -!> - @dependency [TYPE] GRIB2_SECTION3_101_MOD::GRIB2_SECTION3_101_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section3_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION3_FACTORY_MOD' -MODULE GRIB2_SECTION3_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the section3 number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: SECTION3_KEY='template-number' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_SECTION3 - MODULE PROCEDURE MAKE_GRIB2_SECTION3_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_SECTION3 -PUBLIC :: DESTROY_GRIB2_SECTION3 -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Section 3 objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Section 3 object -!> based on the provided parameters. It assigns the proper type (`GRIB2_SECTION3_000_T`) -!> to the `GRIB2_SECTION3` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_SECTION3 The GRIB2 Section 3 object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Section 3 object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 3 object. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_SECTION3_040_T` -!> - `GRIB2_SECTION3_050_T` -!> - `GRIB2_SECTION3_101_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION0_040_MOD::GRIB2_SECTION0_040_T -!> - @dependency [TYPE] GRIB2_SECTION0_050_MOD::GRIB2_SECTION0_050_T -!> - @dependency [TYPE] GRIB2_SECTION0_101_MOD::GRIB2_SECTION0_101_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_040_T -!> @see GRIB2_SECTION3_050_T -!> @see GRIB2_SECTION3_101_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_SECTION3_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_SECTION3_CFG( GRIB2_SECTION3, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION3_040_MOD, ONLY: GRIB2_SECTION3_040_T - USE :: GRIB2_SECTION3_050_MOD, ONLY: GRIB2_SECTION3_050_T - USE :: GRIB2_SECTION3_101_MOD, ONLY: GRIB2_SECTION3_101_T - USE :: GRIB2_SECTION3_150_MOD, ONLY: GRIB2_SECTION3_150_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION3 - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_3=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_SECTION3_TYPE_FROM_CFG( CFG, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 40 ) - - ALLOCATE( GRIB2_SECTION3_040_T::GRIB2_SECTION3, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 50 ) - - ALLOCATE( GRIB2_SECTION3_050_T::GRIB2_SECTION3, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 101 ) - - ALLOCATE( GRIB2_SECTION3_101_T::GRIB2_SECTION3, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 150 ) - - ALLOCATE( GRIB2_SECTION3_150_T::GRIB2_SECTION3, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_3 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_SECTION3%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to read section1 type' ) - CASE (ERRFLAG_UNKNOWN_SECTION_3) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown section3 number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section3 number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing section3 number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_SECTION3_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Section 3 structure. -!> -!> This function takes a GRIB2 Section 3 object (`GRIB2_SECTION3`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_SECTION3 The GRIB2 Section 3 object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION3 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_SECTION3' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_SECTION3( GRIB2_SECTION3, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION3 - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_SECTION3), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_SECTION3%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_SECTION3, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'section3 to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating section3 number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing section3' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_SECTION3 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Section 3 object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 3 object. -!> @param [out] SECTION3_TYPE Identifier of the section3 type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION3 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_SECTION3_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_SECTION3_TYPE_FROM_CFG( CFG, SECTION3_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KIND=JPIB_K), INTENT(OUT) :: SECTION3_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CSECTION3_TYPE - LOGICAL :: HAS_SECTION3 - LOGICAL :: SECTION3_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - SECTION3_TYPE = -1_JPIB_K - - !> Check if configuration has the SECTION3 key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, SECTION3_KEY, HAS_SECTION3, HOOKS ) - - !> Read the SECTION3 template number - IF ( HAS_SECTION3 ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, SECTION3_KEY, CSECTION3_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CSECTION3_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CSECTION3_TYPE, SECTION3_IS_INTEGER, HOOKS ) - IF ( SECTION3_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CSECTION3_TYPE, SECTION3_TYPE, HOOKS ) - ELSE - ! TODO: Somehow decide automatically whcih SECTION3 to use. String can be - ! a label for the method to use. - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - ENDIF - DEALLOCATE(CSECTION3_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SECTION3 ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating SECTION3 number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_SECTION3_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION3_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/CMakeLists.txt deleted file mode 100644 index 9554dd3f3..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/CMakeLists.txt +++ /dev/null @@ -1,81 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4 sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - -# -# Add Subdirectories -add_subdirectory(grib2-chem-configurator) -add_subdirectory(grib2-point-in-time-configurator) -add_subdirectory(grib2-statistics-configurator) -add_subdirectory(grib2-param-configurator) -add_subdirectory(grib2-level-configurator) -add_subdirectory(grib2-model-configurator) -add_subdirectory(grib2-ensemble-configurator) -add_subdirectory(grib2-dirfreq-configurator) -add_subdirectory(grib2-period-configurator) -add_subdirectory(grib2-satellite-configurator) -add_subdirectory(grib2-random-patterns-configurator) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_000_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_001_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_008_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_011_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_032_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_033_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_040_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_041_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_042_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_043_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_045_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_046_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_048_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_049_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_050_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_060_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_061_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_086_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_087_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_099_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_100_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_103_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_104_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_105_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_107_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_108_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_109_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_143_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIR}/grib2_section4_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_MAIN_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_CHEM_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_POINT_IN_TIME_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_STATISTICS_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_PARAM_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_LEVEL_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_MODEL_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_ENSEMBLE_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_DIRFREQ_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_PERIOD_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_SATELLITE_SOURCES} - ${MULTIOM_ENCODER_GRIB2_SECTION4_RANDOM_PATTERNS_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-chem-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-chem-configurator/CMakeLists.txt deleted file mode 100644 index afd69bf33..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-chem-configurator/CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_CHEM_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4_chem sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_CHEM_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_CHEM_DIR}/grib2_section4_chem_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_CHEM_DIR}/grib2_section4_chem_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_CHEM_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_CHEM_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_CHEM_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-chem-configurator/grib2_section4_chem_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-chem-configurator/grib2_section4_chem_factory_mod.F90 deleted file mode 100644 index 1808662b3..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-chem-configurator/grib2_section4_chem_factory_mod.F90 +++ /dev/null @@ -1,580 +0,0 @@ -!> -!> @file grib2_section4_chem_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 CHEM Configurator objects. -!> -!> The `GRIB2_SECTION4_CHEM_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 CHEM Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_CHEM_CONFIGURATOR_000_MOD::GRIB2_CHEM_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_chem_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_CHEM_FACTORY_MOD' -MODULE GRIB2_SECTION4_CHEM_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the chem_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: CHEM_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_CHEM_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_CHEM_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_CHEM_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_CHEM_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 CHEM Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 CHEM Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_CHEM_CONFIGURATOR_000_T`) -!> to the `GRIB2_CHEM_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @chem [inout] GRIB2_CHEM_CONFIGURATOR The GRIB2 CHEM Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @chem [in] ID Integer identifier for the GRIB2 CHEM Configurator object. -!> @chem [in] CFG YAML configuration object used to configure the GRIB2 CHEM Configurator object. -!> @chem [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_CHEM_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_CHEM_CONFIGURATOR_000_MOD::GRIB2_CHEM_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_CHEM_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_CHEM_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_CHEM_CONFIGURATOR_CFG( GRIB2_CHEM_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_CHEM_MOD, ONLY: GRIB2_SECTION4_CHEM_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_CHEM_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_CHEM_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_CHEM_T::GRIB2_CHEM_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_CHEM_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get chem_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown chem_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating chem_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing chem_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_CHEM_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 CHEM Configurator structure. -!> -!> This function takes a GRIB2 CHEM Configurator object (`GRIB2_CHEM_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @chem[in,out] GRIB2_CHEM_CONFIGURATOR The GRIB2 CHEM Configurator object to be destroyed. -!> The structure is modified in place. -!> @chem [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_CHEM_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_CHEM_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_CHEM_CONFIGURATOR( GRIB2_CHEM_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_CHEM_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_CHEM_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_CHEM_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_CHEM_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chem_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating chem_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing chem_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_CHEM_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 CHEM Configurator object. -!> -!> @section interface -!> @chem [in] CFG YAML configuration object used to configure the GRIB2 CHEM Configurator object. -!> @chem [out] CHEM_CONFIGURATOR_TYPE Identifier of the chem_configurator type read from the configuration. -!> @chem [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_CHEM_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_CHEM_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_CHEM_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, CHEM_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: CHEM_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CCHEM_CONFIGURATOR_TYPE - LOGICAL :: HAS_CHEM_CONFIGURATOR - LOGICAL :: CHEM_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - CHEM_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the CHEM_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, CHEM_CONFIGURATOR_KEY, HAS_CHEM_CONFIGURATOR, HOOKS ) - - !> Read the CHEM_CONFIGURATOR template number - IF ( HAS_CHEM_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, CHEM_CONFIGURATOR_KEY, CCHEM_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CCHEM_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CCHEM_CONFIGURATOR_TYPE, CHEM_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( CHEM_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CCHEM_CONFIGURATOR_TYPE, CHEM_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CCHEM_CONFIGURATOR_TYPE) - CASE ( 'chemical' ) - CHEM_CONFIGURATOR_TYPE = 0_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CCHEM_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'CHEM_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating CHEM_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_CHEM_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_CHEM_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-chem-configurator/grib2_section4_chem_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-chem-configurator/grib2_section4_chem_mod.F90 deleted file mode 100644 index 050a4de4c..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-chem-configurator/grib2_section4_chem_mod.F90 +++ /dev/null @@ -1,869 +0,0 @@ -!> -!> @file grib2_section4_chem_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_CHEM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_CHEM_INIT -!> - @see GRIB2_SECTION4_CHEM_ALLOCATE -!> - @see GRIB2_SECTION4_CHEM_PRESET -!> - @see GRIB2_SECTION4_CHEM_RUNTIME -!> - @see GRIB2_SECTION4_CHEM_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_CHEM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_chem_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_CHEM_MOD' -MODULE GRIB2_SECTION4_CHEM_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_CHEM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_CHEM_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_CHEM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_CHEM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_CHEM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_CHEM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_CHEM_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_CHEM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`CHEMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @chem [inout] THIS An object of type `GRIB2_SECTION4_CHEM_T` representing the GRIB section being initialized. -!> @chem [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @chem [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @chem [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_CHEM_INIT -!> @see GRIB2_SECTION4_CHEM_ALLOCATE -!> @see GRIB2_SECTION4_CHEM_PRESET -!> @see GRIB2_SECTION4_CHEM_RUNTIME -!> @see GRIB2_SECTION4_CHEM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_CHEM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_CHEM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_CHEM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CHEM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'CHEM' - THIS%KIND_ = 'CHEM' - - ! Time, level and chemId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_CHEM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`CHEMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @chem [in] THIS An object of type `GRIB2_SECTION4_CHEM_T` representing the GRIB section to allocate resources for. -!> @chem [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @chem [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @chem [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @chem [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @chem [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_CHEM_ALLOCATE -!> @see GRIB2_SECTION4_CHEM_INIT -!> @see GRIB2_SECTION4_CHEM_PRESET -!> @see GRIB2_SECTION4_CHEM_RUNTIME -!> @see GRIB2_SECTION4_CHEM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_CHEM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_CHEM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_CHEM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CHEM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_CHEM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`CHEMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @chem [in] THIS An object of type `GRIB2_SECTION4_CHEM_T` representing the GRIB section to be preset. -!> @chem [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @chem [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @chem [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @chem [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @chem [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_CHEM_PRESET -!> @see GRIB2_SECTION4_CHEM_ALLOCATE -!> @see GRIB2_SECTION4_CHEM_INIT -!> @see GRIB2_SECTION4_CHEM_RUNTIME -!> @see GRIB2_SECTION4_CHEM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_CHEM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_CHEM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_CHEM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CHEM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - IF ( MSG%CHEM .NE. UNDEF_PARAM_E ) THEN - IF ( MSG%CHEM < 900 ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'constituentType', MSG%CHEM ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'aerosolType', MSG%CHEM ) - ENDIF - ENDIF - - ! IF ( MSG%WAVELENGTH(1) .NE. UNDEF_PARAM_E .OR. MSG%WAVELENGTH(2) .NE. UNDEF_PARAM_E ) THEN - ! ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfWavelengthInterval', ??? ) - - ! IF ( MSG%WAVELENGTH(1) .NE. UNDEF_PARAM_E ) THEN - ! ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstWavelength', ) - ! ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstWavelength', ) - ! ENDIF - - ! IF ( MSG%WAVELENGTH(1) .NE. UNDEF_PARAM_E ) THEN - ! ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondWavelength', ) - ! ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondWavelength', ) - ! ENDIF - ! ENDIF - IF ( MSG%WAVELENGTH .NE. REPEAT('*', 32) ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'wavelength', MSG%WAVELENGTH) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_CHEM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`CHEMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @chem [in] THIS An object of type `GRIB2_SECTION4_CHEM_T` representing the GRIB section for runtime execution. -!> @chem [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @chem [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @chem [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @chem [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @chem [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @chem [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @chem [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_CHEM_RUNTIME -!> @see GRIB2_SECTION4_CHEM_ALLOCATE -!> @see GRIB2_SECTION4_CHEM_INIT -!> @see GRIB2_SECTION4_CHEM_PRESET -!> @see GRIB2_SECTION4_CHEM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_CHEM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_CHEM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_CHEM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CHEM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_CHEM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @chem [inout] THIS An object of type `GRIB2_SECTION4_CHEM_T` representing the GRIB section to be freed. -!> @chem [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @chem [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_CHEM_INIT -!> @see GRIB2_SECTION4_CHEM_ALLOCATE -!> @see GRIB2_SECTION4_CHEM_PRESET -!> @see GRIB2_SECTION4_CHEM_RUNTIME -!> @see GRIB2_SECTION4_CHEM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_CHEM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_CHEM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CHEM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_CHEM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_CHEM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/CMakeLists.txt deleted file mode 100644 index 5392385fa..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_DIRFREQ_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4_dirfreq sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_DIRFREQ_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIRFREQ_DIR}/grib2_section4_dirfreq_default_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIRFREQ_DIR}/grib2_section4_dirfreq_custom_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_DIRFREQ_DIR}/grib2_section4_dirfreq_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_DIRFREQ_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_DIRFREQ_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_DIRFREQ_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/grib2_section4_dirfreq_custom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/grib2_section4_dirfreq_custom_mod.F90 deleted file mode 100644 index bb178b742..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/grib2_section4_dirfreq_custom_mod.F90 +++ /dev/null @@ -1,992 +0,0 @@ -!> -!> @file grib2_section4_dirfreq_custom_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_DIRFREQ_CUSTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_DIRFREQ_CUSTOM_INIT -!> - @see GRIB2_SECTION4_DIRFREQ_CUSTOM_ALLOCATE -!> - @see GRIB2_SECTION4_DIRFREQ_CUSTOM_PRESET -!> - @see GRIB2_SECTION4_DIRFREQ_CUSTOM_RUNTIME -!> - @see GRIB2_SECTION4_DIRFREQ_CUSTOM_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_DIRFREQ_CUSTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_dirfreq_custom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_DIRFREQ_CUSTOM_MOD' -MODULE GRIB2_SECTION4_DIRFREQ_CUSTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_DIRFREQ_CUSTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_DIRFREQ_CUSTOM_T - - !> Default symbols visibility - PRIVATE - - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_DIRFREQ_CUSTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_DIRFREQ_CUSTOM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_DIRFREQ_CUSTOM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_DIRFREQ_CUSTOM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_DIRFREQ_CUSTOM_FREE - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: READ_FROM_CFG => GRIB2_SECTION4_DIRFREQ_READ_FROM_CFG - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_DIRFREQ_CUSTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_DIRFREQ_CUSTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_INIT -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_PRESET -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_CUSTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_CUSTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'DIRECTION-FREQUENCY' - THIS%KIND_ = 'CUSTOM' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ) THIS%READ_FROM_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_CUSTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_DIRFREQ_CUSTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_INIT -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_PRESET -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_CUSTOM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_CUSTOM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_CUSTOM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_DIRFREQ_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_PRESET -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_INIT -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_CUSTOM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_CUSTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_CUSTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_DIRFREQ_CUSTOM_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_INIT -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_PRESET -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_CUSTOM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_CUSTOM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_CUSTOM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_DIRFREQ_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_INIT -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_PRESET -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_CUSTOM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_CUSTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_CUSTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Read the configuration parameters of this class from a CFG -!> -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_DIRFREQ_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] CFG The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_INIT -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_PRESET -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_DIRFREQ_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_READ_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_READ_FROM_CFG( THIS, CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TYPE_OF_DIRFREQ_FORECAST - LOGICAL :: HAS_PERTURBATION_NUMBER - LOGICAL :: HAS_NUMBER_OF_FORECASTS_IN_DIRFREQ - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TYPE_OF_DIRFREQ_FORECAST_NOT_PRESENT=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERTURBATION_NUMBER_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NUMBER_OF_FORECASTS_IN_DIRFREQ_NOT_PRESENT=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_READ_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_DIRFREQ_CUSTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/grib2_section4_dirfreq_default_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/grib2_section4_dirfreq_default_mod.F90 deleted file mode 100644 index 8ece28f42..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/grib2_section4_dirfreq_default_mod.F90 +++ /dev/null @@ -1,1093 +0,0 @@ -!> -!> @file grib2_section4_dirfreq_default_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_DIRFREQ_DEFAULT_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_DIRFREQ_DEFAULT_INIT -!> - @see GRIB2_SECTION4_DIRFREQ_DEFAULT_ALLOCATE -!> - @see GRIB2_SECTION4_DIRFREQ_DEFAULT_PRESET -!> - @see GRIB2_SECTION4_DIRFREQ_DEFAULT_RUNTIME -!> - @see GRIB2_SECTION4_DIRFREQ_DEFAULT_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_DIRFREQ_DEFAULT_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_dirfreq_default_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_DIRFREQ_DEFAULT_MOD' -MODULE GRIB2_SECTION4_DIRFREQ_DEFAULT_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_DIRFREQ_DEFAULT_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_DIRFREQ_DEFAULT_T - - !> Default symbols visibility - PRIVATE - - !> Scaled factors for wave direction - INTEGER(KIND=JPIB_K) :: SCALE_FACTOR_OF_WAVE_DIRECTIONS_=2_JPIB_K - - !> Scaled factors for wave frequencies - INTEGER(KIND=JPIB_K) :: SCALE_FACTOR_OF_WAVE_FREQUENCIES_=6_JPIB_K - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_DIRFREQ_DEFAULT_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_DIRFREQ_DEFAULT_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_DIRFREQ_DEFAULT_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_DIRFREQ_DEFAULT_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_DIRFREQ_DEFAULT_FREE - - !> - !> @brief Read resources allocated for the GRIB2 Section 4 time configuration object. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: READ_FROM_CFG => GRIB2_SECTION4_DIRFREQ_READ_FROM_CFG - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_DIRFREQ_DEFAULT_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_DIRFREQ_DEFAULT_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_INIT -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_PRESET -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_DEFAULT_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_DEFAULT_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'DIRECTION-FREQUENCY' - THIS%KIND_ = 'DEFAULT' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ) THIS%READ_FROM_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_DEFAULT_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_DIRFREQ_DEFAULT_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_INIT -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_PRESET -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_DEFAULT_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_DEFAULT_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: CONSTANTS_MOD, ONLY: RAD2DEG - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIM_K) :: HANDLE - INTEGER(KIND=JPIB_K) :: TMP - INTEGER(KIND=JPIM_K) :: KRET - - INTEGER(KIND=JPIB_K) :: I - INTEGER(KIND=JPIB_K) :: N_DIRS - INTEGER(KIND=JPIB_K) :: N_FREQ - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - REAL(KIND=JPRD_K), ALLOCATABLE, DIMENSION(:) :: SCALED_VALUES_OF_WAVE_DIRECTIONS - REAL(KIND=JPRD_K), ALLOCATABLE, DIMENSION(:) :: SCALED_VALUES_OF_WAVE_FREQUENCIES - - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WAM_PARAMETRIZATION_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! initialization of scale factors - IF ( PAR%WAVE%SCALE_FACTOR_OF_WAVE_DIRECTIONS .NE. UNDEF_PARAM_E ) THEN - THIS%SCALE_FACTOR_OF_WAVE_DIRECTIONS_ = PAR%WAVE%SCALE_FACTOR_OF_WAVE_DIRECTIONS - ENDIF - IF ( PAR%WAVE%SCALE_FACTOR_OF_WAVE_FREQUENCIES .NE. UNDEF_PARAM_E ) THEN - THIS%SCALE_FACTOR_OF_WAVE_FREQUENCIES_ = PAR%WAVE%SCALE_FACTOR_OF_WAVE_FREQUENCIES - ENDIF - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - !> Gererate the scaled values for the wave directions - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(PAR%WAVE%DIRS_), ERRFLAG_WAM_PARAMETRIZATION_NOT_ASSOCIATED ) - N_DIRS = SIZE(PAR%WAVE%DIRS_) - ALLOCATE(SCALED_VALUES_OF_WAVE_DIRECTIONS(N_DIRS), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_ALLOCATION_ERROR ) - - !> Fill the scaled values for directions - DO I = 1, N_DIRS - SCALED_VALUES_OF_WAVE_DIRECTIONS(I) = NINT(PAR%WAVE%DIRS_(I)*10**THIS%SCALE_FACTOR_OF_WAVE_DIRECTIONS_*RAD2DEG) - ENDDO - - - !> Gererate the scaled values for the wave frequencies - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(PAR%WAVE%FREQ_), ERRFLAG_WAM_PARAMETRIZATION_NOT_ASSOCIATED ) - N_FREQ = SIZE(PAR%WAVE%FREQ_) - ALLOCATE(SCALED_VALUES_OF_WAVE_FREQUENCIES(N_FREQ), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_ALLOCATION_ERROR ) - - !> Fill the scaled values for frequencies - DO I = 1, N_FREQ - SCALED_VALUES_OF_WAVE_FREQUENCIES(I) = NINT(PAR%WAVE%FREQ_(I)*10**THIS%SCALE_FACTOR_OF_WAVE_FREQUENCIES_) - ENDDO - - !> Set the metadata - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfWaveDirections', N_DIRS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfWaveDirections', THIS%SCALE_FACTOR_OF_WAVE_DIRECTIONS_ ) - IF ( ALLOCATED(SCALED_VALUES_OF_WAVE_DIRECTIONS) ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValuesOfWaveDirections', SCALED_VALUES_OF_WAVE_DIRECTIONS ) - ENDIF - - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfWaveFrequencies', N_FREQ ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfWaveFrequencies', THIS%SCALE_FACTOR_OF_WAVE_FREQUENCIES_ ) - IF ( ALLOCATED(SCALED_VALUES_OF_WAVE_FREQUENCIES) ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValuesOfWaveFrequencies', SCALED_VALUES_OF_WAVE_FREQUENCIES ) - ENDIF - - !> Set the runtime - ! IF ( OPT%CACHE_STRATEGY .EQ. OPT_CACHE_FULL_E ) THEN - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'waveDirectionNumber', MSG%DIRECTION ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'waveFrequencyNumber', MSG%FREQUENCY ) - ! ENDIF - - !> Free local memory - IF ( ALLOCATED(SCALED_VALUES_OF_WAVE_DIRECTIONS) ) THEN - DEALLOCATE(SCALED_VALUES_OF_WAVE_DIRECTIONS, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS .NE. 0, ERRFLAG_DEALLOCATION_ERROR ) - ENDIF - - IF ( ALLOCATED(SCALED_VALUES_OF_WAVE_FREQUENCIES) ) THEN - DEALLOCATE(SCALED_VALUES_OF_WAVE_FREQUENCIES, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS .NE. 0, ERRFLAG_DEALLOCATION_ERROR ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_WAM_PARAMETRIZATION_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'WAM parametrization not associated' ) - CASE ( ERRFLAG_ALLOCATION_ERROR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'allocation error' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE ( ERRFLAG_DEALLOCATION_ERROR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'deallocation error' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: '//TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get handle' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_DEFAULT_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_DIRFREQ_DEFAULT_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_PRESET -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_INIT -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_DEFAULT_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_DEFAULT_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - !> Set the runtime - ! IF ( OPT%CACHE_STRATEGY .NE. OPT_CACHE_FULL_E ) THEN - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'waveDirectionNumber', MSG%DIRECTION ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'waveFrequencyNumber', MSG%FREQUENCY ) - ! ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_DEFAULT_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_DIRFREQ_DEFAULT_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_INIT -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_PRESET -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_DEFAULT_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_DEFAULT_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'waveDirectionNumber', MSG%DIRECTION ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'waveFrequencyNumber', MSG%FREQUENCY ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_DEFAULT_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_DIRFREQ_DEFAULT_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_INIT -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_PRESET -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_DIRFREQ_DEFAULT_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_DEFAULT_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_DEFAULT_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_DEFAULT_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_DIRFREQ_READ_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_DIRFREQ_READ_FROM_CFG( THIS, CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DIRFREQ_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_SCALE_FACTOR_OF_WAVE_DIRECTIONS - LOGICAL :: HAS_SCALE_FACTOR_OF_WAVE_FREQUENCIES - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, & -& 'scale-factor-of-wave-directions', HAS_SCALE_FACTOR_OF_WAVE_DIRECTIONS, HOOKS ) - - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, & -& 'scale-factor-of-wave-frequencies', HAS_SCALE_FACTOR_OF_WAVE_FREQUENCIES, HOOKS ) - - !> Read the encoder configuration - IF ( HAS_SCALE_FACTOR_OF_WAVE_DIRECTIONS ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, & -& 'scale-factor-of-wave-directions', THIS%SCALE_FACTOR_OF_WAVE_DIRECTIONS_, HOOKS ) - ELSE - THIS%SCALE_FACTOR_OF_WAVE_DIRECTIONS_ = 2_JPIB_K - ENDIF - - IF ( HAS_SCALE_FACTOR_OF_WAVE_FREQUENCIES ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, & -& 'scale-factor-of-wave-frequencies', THIS%SCALE_FACTOR_OF_WAVE_FREQUENCIES_, HOOKS ) - ELSE - THIS%SCALE_FACTOR_OF_WAVE_FREQUENCIES_ = 6_JPIB_K - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_CFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_DIRFREQ_READ_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_DIRFREQ_DEFAULT_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/grib2_section4_dirfreq_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/grib2_section4_dirfreq_factory_mod.F90 deleted file mode 100644 index 615475487..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-dirfreq-configurator/grib2_section4_dirfreq_factory_mod.F90 +++ /dev/null @@ -1,587 +0,0 @@ -!> -!> @file grib2_section4_dirfreq_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> The `GRIB2_SECTION4_DIRFREQ_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Param Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_DIRFREQ_CONFIGURATOR_000_MOD::GRIB2_DIRFREQ_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_dirfreq_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_DIRFREQ_FACTORY_MOD' -MODULE GRIB2_SECTION4_DIRFREQ_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the dirfreq_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: DIRFREQ_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_DIRFREQ_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_DIRFREQ_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_DIRFREQ_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_DIRFREQ_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Param Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_DIRFREQ_CONFIGURATOR_000_T`) -!> to the `GRIB2_DIRFREQ_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_DIRFREQ_CONFIGURATOR The GRIB2 Param Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Param Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_DIRFREQ_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_DIRFREQ_CONFIGURATOR_000_MOD::GRIB2_DIRFREQ_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_DIRFREQ_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_DIRFREQ_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_DIRFREQ_CONFIGURATOR_CFG( GRIB2_DIRFREQ_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_DIRFREQ_DEFAULT_MOD, ONLY: GRIB2_SECTION4_DIRFREQ_DEFAULT_T - USE :: GRIB2_SECTION4_DIRFREQ_CUSTOM_MOD, ONLY: GRIB2_SECTION4_DIRFREQ_CUSTOM_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_DIRFREQ_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_DIRFREQ_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_DIRFREQ_DEFAULT_T::GRIB2_DIRFREQ_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION4_DIRFREQ_CUSTOM_T::GRIB2_DIRFREQ_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_DIRFREQ_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get dirfreq_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown dirfreq_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating dirfreq_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing dirfreq_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_DIRFREQ_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Param Configurator structure. -!> -!> This function takes a GRIB2 Param Configurator object (`GRIB2_DIRFREQ_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_DIRFREQ_CONFIGURATOR The GRIB2 Param Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_DIRFREQ_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_DIRFREQ_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_DIRFREQ_CONFIGURATOR( GRIB2_DIRFREQ_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_DIRFREQ_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_DIRFREQ_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_DIRFREQ_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_DIRFREQ_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'dirfreq_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating dirfreq_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing dirfreq_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_DIRFREQ_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Param Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [out] DIRFREQ_CONFIGURATOR_TYPE Identifier of the dirfreq_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_DIRFREQ_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_DIRFREQ_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_DIRFREQ_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, DIRFREQ_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: DIRFREQ_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CDIRFREQ_CONFIGURATOR_TYPE - LOGICAL :: HAS_DIRFREQ_CONFIGURATOR - LOGICAL :: DIRFREQ_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - DIRFREQ_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the DIRFREQ_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, DIRFREQ_CONFIGURATOR_KEY, HAS_DIRFREQ_CONFIGURATOR, HOOKS ) - - !> Read the DIRFREQ_CONFIGURATOR template number - IF ( HAS_DIRFREQ_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, DIRFREQ_CONFIGURATOR_KEY, CDIRFREQ_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CDIRFREQ_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CDIRFREQ_CONFIGURATOR_TYPE, DIRFREQ_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( DIRFREQ_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CDIRFREQ_CONFIGURATOR_TYPE, DIRFREQ_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CDIRFREQ_CONFIGURATOR_TYPE) - CASE ( 'default' ) - DIRFREQ_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ( 'custom' ) - DIRFREQ_CONFIGURATOR_TYPE = 1_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CDIRFREQ_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'DIRFREQ_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating DIRFREQ_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_DIRFREQ_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_DIRFREQ_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/CMakeLists.txt deleted file mode 100644 index a62d01657..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_ENSEMBLE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4_ensemble sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_ENSEMBLE_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_ENSEMBLE_DIR}/grib2_section4_ensemble_default_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_ENSEMBLE_DIR}/grib2_section4_ensemble_custom_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_ENSEMBLE_DIR}/grib2_section4_ensemble_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_ENSEMBLE_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_ENSEMBLE_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_ENSEMBLE_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/grib2_section4_ensemble_custom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/grib2_section4_ensemble_custom_mod.F90 deleted file mode 100644 index 7ebaad39e..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/grib2_section4_ensemble_custom_mod.F90 +++ /dev/null @@ -1,1031 +0,0 @@ -!> -!> @file grib2_section4_ensemble_custom_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_ENSEMBLE_CUSTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_INIT -!> - @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_ALLOCATE -!> - @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_PRESET -!> - @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_RUNTIME -!> - @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_ensemble_custom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ENSEMBLE_CUSTOM_MOD' -MODULE GRIB2_SECTION4_ENSEMBLE_CUSTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_ENSEMBLE_CUSTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_ENSEMBLE_CUSTOM_T - - !> Default symbols visibility - PRIVATE - - INTEGER(KIND=JPIB_K) :: TYPE_OF_ENSEMBLE_FORECAST_ = UNDEF_PARAM_E - INTEGER(KIND=JPIB_K) :: PERTURBATION_NUMBER_ = -1_JPIB_K - INTEGER(KIND=JPIB_K) :: NUMBER_OF_FORECASTS_IN_ENSEMBLE_ = -1_JPIB_K - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_ENSEMBLE_CUSTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_ENSEMBLE_CUSTOM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_ENSEMBLE_CUSTOM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_ENSEMBLE_CUSTOM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_ENSEMBLE_CUSTOM_FREE - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: READ_FROM_CFG => GRIB2_SECTION4_ENSEMBLE_READ_FROM_CFG - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_ENSEMBLE_CUSTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ENSEMBLE_CUSTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_INIT -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_ENSEMBLE_CUSTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_ENSEMBLE_CUSTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENSEMBLE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'ENSEMBLE' - THIS%KIND_ = 'CUSTOM' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ) THIS%READ_FROM_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_ENSEMBLE_CUSTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENSEMBLE_CUSTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_INIT -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_ENSEMBLE_CUSTOM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_ENSEMBLE_CUSTOM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENSEMBLE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_ENSEMBLE_CUSTOM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENSEMBLE_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_INIT -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_ENSEMBLE_CUSTOM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_ENSEMBLE_CUSTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENSEMBLE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - !> Configure the information needed for describing the ensemble (tipically 1 from table 4.6: - !> Unperturbed low-resolution control forecast ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfEnsembleForecast', THIS%TYPE_OF_ENSEMBLE_FORECAST_ ) - - !> Configure the information needed for describing the ensemble - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'perturbationNumber', MSG%NUMBER ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfForecastsInEnsemble', THIS%NUMBER_OF_FORECASTS_IN_ENSEMBLE_ ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_ENSEMBLE_CUSTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENSEMBLE_CUSTOM_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_INIT -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_ENSEMBLE_CUSTOM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_ENSEMBLE_CUSTOM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENSEMBLE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_ENSEMBLE_CUSTOM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ENSEMBLE_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_INIT -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_ENSEMBLE_CUSTOM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_ENSEMBLE_CUSTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENSEMBLE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_ENSEMBLE_CUSTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Read the configuration parameters of this class from a CFG -!> -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ENSEMBLE_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] CFG The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_INIT -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_ENSEMBLE_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_ENSEMBLE_READ_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_ENSEMBLE_READ_FROM_CFG( THIS, CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENSEMBLE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TYPE_OF_ENSEMBLE_FORECAST - LOGICAL :: HAS_PERTURBATION_NUMBER - LOGICAL :: HAS_NUMBER_OF_FORECASTS_IN_ENSEMBLE - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TYPE_OF_ENSEMBLE_FORECAST_NOT_PRESENT=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERTURBATION_NUMBER_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NUMBER_OF_FORECASTS_IN_ENSEMBLE_NOT_PRESENT=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'type-of-ensemble-forecast', HAS_TYPE_OF_ENSEMBLE_FORECAST, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'perturbation-number', HAS_PERTURBATION_NUMBER, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'number-of-forecasts-in-ensemble', HAS_NUMBER_OF_FORECASTS_IN_ENSEMBLE, HOOKS ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TYPE_OF_ENSEMBLE_FORECAST, ERRFLAG_TYPE_OF_ENSEMBLE_FORECAST_NOT_PRESENT ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PERTURBATION_NUMBER, ERRFLAG_PERTURBATION_NUMBER_NOT_PRESENT ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_NUMBER_OF_FORECASTS_IN_ENSEMBLE, ERRFLAG_NUMBER_OF_FORECASTS_IN_ENSEMBLE_NOT_PRESENT ) - - !> Read the encoder configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'type-of-ensemble-forecast', THIS%TYPE_OF_ENSEMBLE_FORECAST_, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'perturbation-number', THIS%PERTURBATION_NUMBER_, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'number-of-forecasts-in-ensemble', THIS%NUMBER_OF_FORECASTS_IN_ENSEMBLE_, HOOKS ) - - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_CFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE (ERRFLAG_TYPE_OF_ENSEMBLE_FORECAST_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'type-of-ensemble-forecast not present' ) - CASE (ERRFLAG_PERTURBATION_NUMBER_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'perturbation-number not present' ) - CASE (ERRFLAG_NUMBER_OF_FORECASTS_IN_ENSEMBLE_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'number-of-forecasts-in-ensemble not present' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_ENSEMBLE_READ_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_ENSEMBLE_CUSTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/grib2_section4_ensemble_default_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/grib2_section4_ensemble_default_mod.F90 deleted file mode 100644 index 47c56c052..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/grib2_section4_ensemble_default_mod.F90 +++ /dev/null @@ -1,882 +0,0 @@ -!> -!> @file grib2_section4_ensemble_default_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_ENSEMBLE_DEFAULT_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_INIT -!> - @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_ALLOCATE -!> - @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_PRESET -!> - @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_RUNTIME -!> - @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_ensemble_default_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ENSEMBLE_DEFAULT_MOD' -MODULE GRIB2_SECTION4_ENSEMBLE_DEFAULT_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_ENSEMBLE_DEFAULT_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_ENSEMBLE_DEFAULT_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_ENSEMBLE_DEFAULT_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_ENSEMBLE_DEFAULT_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_ENSEMBLE_DEFAULT_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_ENSEMBLE_DEFAULT_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_ENSEMBLE_DEFAULT_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_ENSEMBLE_DEFAULT_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ENSEMBLE_DEFAULT_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_INIT -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_PRESET -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_ENSEMBLE_DEFAULT_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_ENSEMBLE_DEFAULT_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENSEMBLE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'ENSEMBLE' - THIS%KIND_ = 'DEFAULT' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_ENSEMBLE_DEFAULT_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENSEMBLE_DEFAULT_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_INIT -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_PRESET -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_ENSEMBLE_DEFAULT_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_ENSEMBLE_DEFAULT_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENSEMBLE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_ENSEMBLE_DEFAULT_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENSEMBLE_DEFAULT_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_PRESET -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_INIT -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_ENSEMBLE_DEFAULT_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_ENSEMBLE_DEFAULT_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_CF_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_PF_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENSEMBLE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARSTYPE_EXPECTED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_TYPE_OF_ENSEMBLE_FORECAST=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! 35 typeOfEnsembleForecast codetable Type of ensemble forecast (see Code table 4.6) - ! 36 perturbationNumber unsigned Perturbation number - ! 37 numberOfForecastsInEnsemble unsigned Number of forecasts in ensemble - - !> Configure the information needed for describing the ensemble (tipically 1 from table 4.6: - !> Unperturbed low-resolution control forecast ) - IF ( PAR%ENSEMBLE%TYPE_OF_ENSEMBLE_FORECAST_ .NE. UNDEF_PARAM_E ) THEN ! has(typeOfEnsembleForecast) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfEnsembleForecast', PAR%ENSEMBLE%TYPE_OF_ENSEMBLE_FORECAST_ ) - ELSE - IF ( MSG%TYPE .NE. UNDEF_PARAM_E ) THEN - SELECT CASE (MSG%TYPE) - CASE ( TYPE_CF_E ) ! Control forecast - ! MIVAL: Need to define preper enumerators for type_of_ensemble_forecast - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfEnsembleForecast', 5_JPIB_K ) - CASE ( TYPE_PF_E ) ! Perturbed forecast - ! MIVAL: Need to define preper enumerators for type_of_ensemble_forecast - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfEnsembleForecast', 6_JPIB_K ) - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_TYPE_OF_ENSEMBLE_FORECAST ) - END SELECT - ELSE - PP_DEBUG_CRITICAL_THROW( ERRFLAG_MARSTYPE_EXPECTED ) - ENDIF - ENDIF - - !> Configure the information needed for describing the ensemble - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'perturbationNumber', MSG%NUMBER) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfForecastsInEnsemble', PAR%ENSEMBLE%NUMBER_OF_FORECASTS_IN_ENSEMBLE_ ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNKNOWN_TYPE_OF_ENSEMBLE_FORECAST ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unknown type of ensemble forecast' ) - CASE ( ERRFLAG_MARSTYPE_EXPECTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'marstype is mandatory' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_ENSEMBLE_DEFAULT_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENSEMBLE_DEFAULT_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_INIT -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_PRESET -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_ENSEMBLE_DEFAULT_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_ENSEMBLE_DEFAULT_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENSEMBLE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_ENSEMBLE_DEFAULT_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ENSEMBLE_DEFAULT_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_INIT -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_PRESET -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_ENSEMBLE_DEFAULT_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_ENSEMBLE_DEFAULT_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_ENSEMBLE_DEFAULT_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENSEMBLE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_ENSEMBLE_DEFAULT_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_ENSEMBLE_DEFAULT_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/grib2_section4_ensemble_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/grib2_section4_ensemble_factory_mod.F90 deleted file mode 100644 index bff17b470..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-ensemble-configurator/grib2_section4_ensemble_factory_mod.F90 +++ /dev/null @@ -1,587 +0,0 @@ -!> -!> @file grib2_section4_ensemble_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> The `GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Param Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_ENSEMBLE_CONFIGURATOR_000_MOD::GRIB2_ENSEMBLE_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_ensemble_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD' -MODULE GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the ensemble_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_ENSEMBLE_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Param Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_ENSEMBLE_CONFIGURATOR_000_T`) -!> to the `GRIB2_ENSEMBLE_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_ENSEMBLE_CONFIGURATOR The GRIB2 Param Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Param Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_ENSEMBLE_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_ENSEMBLE_CONFIGURATOR_000_MOD::GRIB2_ENSEMBLE_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_ENSEMBLE_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_ENSEMBLE_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_ENSEMBLE_CONFIGURATOR_CFG( GRIB2_ENSEMBLE_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_ENSEMBLE_DEFAULT_MOD, ONLY: GRIB2_SECTION4_ENSEMBLE_DEFAULT_T - USE :: GRIB2_SECTION4_ENSEMBLE_CUSTOM_MOD, ONLY: GRIB2_SECTION4_ENSEMBLE_CUSTOM_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_ENSEMBLE_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_ENSEMBLE_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_ENSEMBLE_DEFAULT_T::GRIB2_ENSEMBLE_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION4_ENSEMBLE_CUSTOM_T::GRIB2_ENSEMBLE_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_ENSEMBLE_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get ensemble_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown ensemble_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating ensemble_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing ensemble_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_ENSEMBLE_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Param Configurator structure. -!> -!> This function takes a GRIB2 Param Configurator object (`GRIB2_ENSEMBLE_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_ENSEMBLE_CONFIGURATOR The GRIB2 Param Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_ENSEMBLE_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( GRIB2_ENSEMBLE_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_ENSEMBLE_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_ENSEMBLE_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_ENSEMBLE_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_ENSEMBLE_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating ensemble_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing ensemble_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Param Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [out] ENSEMBLE_CONFIGURATOR_TYPE Identifier of the ensemble_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_ENSEMBLE_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_ENSEMBLE_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_ENSEMBLE_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, ENSEMBLE_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ENSEMBLE_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CENSEMBLE_CONFIGURATOR_TYPE - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - LOGICAL :: ENSEMBLE_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - ENSEMBLE_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the ENSEMBLE_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_KEY, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - - !> Read the ENSEMBLE_CONFIGURATOR template number - IF ( HAS_ENSEMBLE_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, ENSEMBLE_CONFIGURATOR_KEY, CENSEMBLE_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CENSEMBLE_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CENSEMBLE_CONFIGURATOR_TYPE, ENSEMBLE_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( ENSEMBLE_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CENSEMBLE_CONFIGURATOR_TYPE, ENSEMBLE_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CENSEMBLE_CONFIGURATOR_TYPE) - CASE ( 'default' ) - ENSEMBLE_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ( 'custom' ) - ENSEMBLE_CONFIGURATOR_TYPE = 1_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CENSEMBLE_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ENSEMBLE_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating ENSEMBLE_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_ENSEMBLE_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/CMakeLists.txt deleted file mode 100644 index d6ddf1765..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/CMakeLists.txt +++ /dev/null @@ -1,125 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4_level sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_LEVEL_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/levels_utils_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_surface_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_snowlayer_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_soillayer_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_seaicelayer_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_hybrid_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_isobaricinhpa_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_isobaricinpa_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_potentialvorticity_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_theta_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_heightaboveground_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_heightabovegroundat10m_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_heightabovegroundat2m_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_custom_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_adiabaticcondensation_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_atmosphere_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_cloudbase_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_cloudtop_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_convectivecondensation_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_cumulonimbusbase_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_cumulonimbustop_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_depthbelowlandlayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_depthbelowland_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_depthbelowsealayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_depthbelowsea_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_entireatmosphere_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_entirelake_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_entiremeltpond_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_entireocean_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_eta_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_freeconvection_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_generalverticallayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_generalvertical_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_heightabovegroundlayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_heightabovesealayer_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_heightabovesea_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_heightaboveseaat10m_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_heightaboveseaat2m_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_highcloudlayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_hybridheight_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_hybridlayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_hybridpressure_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_icebottomonwater_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_icelayerabovewatersurface_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_icelayeronwater_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_icelayerundersnowonwater_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_icetoponwater_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_icetopundersnowonwater_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_indefinitesoildepth_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_isobariclayer_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_isothermal_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_isothermzero_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_lakebottom_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_lowcloudlayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_maxwind_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_meansea_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_mediumcloudlayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_meltpondbottom_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_meltpondtop_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_mixedlayerdepthbydensity_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_mixedlayerdepthbydiffusivity_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_mixedlayerdepthbytemperature_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_mixedlayerdepthgeneric_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_mixedlayerparcel_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_mixinglayer_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_mostunstableparcel_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_neutralbuoyancy_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_nominaltop_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_oceanmodellayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_oceanmodel_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_oceansurface_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_oceansurfacetobottom_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_pressurefromgroundlayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_pressurefromground_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_roadlayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_road_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_rooflayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_roof_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_rootzone_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_seabottom_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_seaice_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_sigmalayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_sigma_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_snowlayerovericeonwater_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_snow_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_snowtopovericeonwater_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_soil_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_thetalayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_totalsoillayer_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_tropopause_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_urbancanyon_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_walllayer_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_wall_mod.F90 - # ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_watersurfacetoisothermaloceanlayer_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_abstractSingleLevel_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_abstractMultipleLevels_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_LEVEL_DIR}/grib2_section4_level_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_LEVEL_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_LEVEL_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_LEVEL_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_abstractMultipleLevels_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_abstractMultipleLevels_mod.F90 deleted file mode 100644 index 6d6ee204a..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_abstractMultipleLevels_mod.F90 +++ /dev/null @@ -1,1215 +0,0 @@ -!> -!> @file grib2_section4_abstractMultipleLevels_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_ABSTRACTMULTIPLELEVELS_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_ABSTRACTMULTIPLELEVELS_INIT -!> - @see G2S4_ABSTRACTMULTIPLELEVELS_ALLOC -!> - @see G2S4_ABSTRACTMULTIPLELEVELS_PRESET -!> - @see G2S4_ABSTRACTMULTIPLELEVELS_RT -!> - @see G2S4_ABSTRACTMULTIPLELEVELS_TBE -!> - @see G2S4_ABSTRACTMULTIPLELEVELS_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_abstractMultipleLevels_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_MOD' -MODULE GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'abstrictMultipleLevels' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 191_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_ABSTRACTMULTIPLELEVELS_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_ABSTRACTMULTIPLELEVELS_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_ABSTRACTMULTIPLELEVELS_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_ABSTRACTMULTIPLELEVELS_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_ABSTRACTMULTIPLELEVELS_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_ABSTRACTMULTIPLELEVELS_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_ABSTRACTMULTIPLELEVELS_CHECK -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTMULTIPLELEVELS_INIT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_ALLOC -!> @see G2S4_ABSTRACTMULTIPLELEVELS_PRESET -!> @see G2S4_ABSTRACTMULTIPLELEVELS_RT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_TBE -!> @see G2S4_ABSTRACTMULTIPLELEVELS_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTMULTIPLELEVELS_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'ABSTRACTMULTIPLELEVELS' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTMULTIPLELEVELS_ALLOC -!> @see G2S4_ABSTRACTMULTIPLELEVELS_INIT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_PRESET -!> @see G2S4_ABSTRACTMULTIPLELEVELS_RT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_TBE -!> @see G2S4_ABSTRACTMULTIPLELEVELS_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTMULTIPLELEVELS_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Allocate abstractMultipleLevels' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTMULTIPLELEVELS_PRESET -!> @see G2S4_ABSTRACTMULTIPLELEVELS_ALLOC -!> @see G2S4_ABSTRACTMULTIPLELEVELS_INIT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_RT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_TBE -!> @see G2S4_ABSTRACTMULTIPLELEVELS_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTMULTIPLELEVELS_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Preset abstractMultipleLevels' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTMULTIPLELEVELS_RT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_ALLOC -!> @see G2S4_ABSTRACTMULTIPLELEVELS_INIT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_PRESET -!> @see G2S4_ABSTRACTMULTIPLELEVELS_TBE -!> @see G2S4_ABSTRACTMULTIPLELEVELS_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTMULTIPLELEVELS_RT' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Runtime abstractMultipleLevels' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTMULTIPLELEVELS_INIT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_ALLOC -!> @see G2S4_ABSTRACTMULTIPLELEVELS_PRESET -!> @see G2S4_ABSTRACTMULTIPLELEVELS_RT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTMULTIPLELEVELS_FREE' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTMULTIPLELEVELS_PRESET -!> @see G2S4_ABSTRACTMULTIPLELEVELS_ALLOC -!> @see G2S4_ABSTRACTMULTIPLELEVELS_INIT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_RT -!> @see G2S4_ABSTRACTMULTIPLELEVELS_TBE -!> @see G2S4_ABSTRACTMULTIPLELEVELS_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTMULTIPLELEVELS_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: abstractMultipleLevels' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'abstractMultipleLevels', & -!& 2_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTMULTIPLELEVELS_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: abstractMultipleLevels' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTMULTIPLELEVELS_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_abstractSingleLevel_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_abstractSingleLevel_mod.F90 deleted file mode 100644 index 95c946dc0..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_abstractSingleLevel_mod.F90 +++ /dev/null @@ -1,1215 +0,0 @@ -!> -!> @file grib2_section4_abstractSingleLevel_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_ABSTRACTSINGLELEVEL_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_ABSTRACTSINGLELEVEL_INIT -!> - @see G2S4_ABSTRACTSINGLELEVEL_ALLOC -!> - @see G2S4_ABSTRACTSINGLELEVEL_PRESET -!> - @see G2S4_ABSTRACTSINGLELEVEL_RT -!> - @see G2S4_ABSTRACTSINGLELEVEL_TBE -!> - @see G2S4_ABSTRACTSINGLELEVEL_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_abstractSingleLevel_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ABSTRACTSINGLELEVEL_MOD' -MODULE GRIB2_SECTION4_ABSTRACTSINGLELEVEL_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'abstractSingleLevel' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 191_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_ABSTRACTSINGLELEVEL_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_ABSTRACTSINGLELEVEL_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_ABSTRACTSINGLELEVEL_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_ABSTRACTSINGLELEVEL_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_ABSTRACTSINGLELEVEL_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_ABSTRACTSINGLELEVEL_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_ABSTRACTSINGLELEVEL_CHECK -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTSINGLELEVEL_INIT -!> @see G2S4_ABSTRACTSINGLELEVEL_ALLOC -!> @see G2S4_ABSTRACTSINGLELEVEL_PRESET -!> @see G2S4_ABSTRACTSINGLELEVEL_RT -!> @see G2S4_ABSTRACTSINGLELEVEL_TBE -!> @see G2S4_ABSTRACTSINGLELEVEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTSINGLELEVEL_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTSINGLELEVEL_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'ABSTRACTSINGLELEVEL' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTSINGLELEVEL_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTSINGLELEVEL_ALLOC -!> @see G2S4_ABSTRACTSINGLELEVEL_INIT -!> @see G2S4_ABSTRACTSINGLELEVEL_PRESET -!> @see G2S4_ABSTRACTSINGLELEVEL_RT -!> @see G2S4_ABSTRACTSINGLELEVEL_TBE -!> @see G2S4_ABSTRACTSINGLELEVEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTSINGLELEVEL_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTSINGLELEVEL_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Allocate abstractSingleLevel' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTSINGLELEVEL_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTSINGLELEVEL_PRESET -!> @see G2S4_ABSTRACTSINGLELEVEL_ALLOC -!> @see G2S4_ABSTRACTSINGLELEVEL_INIT -!> @see G2S4_ABSTRACTSINGLELEVEL_RT -!> @see G2S4_ABSTRACTSINGLELEVEL_TBE -!> @see G2S4_ABSTRACTSINGLELEVEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTSINGLELEVEL_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTSINGLELEVEL_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Preset abstractSingleLevel' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTSINGLELEVEL_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTSINGLELEVEL_RT -!> @see G2S4_ABSTRACTSINGLELEVEL_ALLOC -!> @see G2S4_ABSTRACTSINGLELEVEL_INIT -!> @see G2S4_ABSTRACTSINGLELEVEL_PRESET -!> @see G2S4_ABSTRACTSINGLELEVEL_TBE -!> @see G2S4_ABSTRACTSINGLELEVEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTSINGLELEVEL_RT' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTSINGLELEVEL_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Runtime abstractSingleLevel' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTSINGLELEVEL_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTSINGLELEVEL_INIT -!> @see G2S4_ABSTRACTSINGLELEVEL_ALLOC -!> @see G2S4_ABSTRACTSINGLELEVEL_PRESET -!> @see G2S4_ABSTRACTSINGLELEVEL_RT -!> @see G2S4_ABSTRACTSINGLELEVEL_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTSINGLELEVEL_FREE' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTSINGLELEVEL_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTSINGLELEVEL_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ABSTRACTSINGLELEVEL_PRESET -!> @see G2S4_ABSTRACTSINGLELEVEL_ALLOC -!> @see G2S4_ABSTRACTSINGLELEVEL_INIT -!> @see G2S4_ABSTRACTSINGLELEVEL_RT -!> @see G2S4_ABSTRACTSINGLELEVEL_TBE -!> @see G2S4_ABSTRACTSINGLELEVEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTSINGLELEVEL_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTSINGLELEVEL_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: abstractSingleLevel' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'abstractSingleLevel', & -!& 2_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTSINGLELEVEL_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ABSTRACTSINGLELEVEL_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_ABSTRACTSINGLELEVEL_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: abstractSingleLevel' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ABSTRACTSINGLELEVEL_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_ABSTRACTSINGLELEVEL_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_cloudbase_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_cloudbase_mod.F90 deleted file mode 100644 index 9a2c23d10..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_cloudbase_mod.F90 +++ /dev/null @@ -1,1213 +0,0 @@ -!> -!> @file grib2_section4_cloudbase_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_CLOUDBASE_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_CLOUDBASE_INIT -!> - @see G2S4_CLOUDBASE_ALLOC -!> - @see G2S4_CLOUDBASE_PRESET -!> - @see G2S4_CLOUDBASE_RT -!> - @see G2S4_CLOUDBASE_TBE -!> - @see G2S4_CLOUDBASE_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_cloudbase_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_CLOUDBASE_MOD' -MODULE GRIB2_SECTION4_CLOUDBASE_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'cloudBase' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 2_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_CLOUDBASE_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_CLOUDBASE_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_CLOUDBASE_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_CLOUDBASE_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_CLOUDBASE_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_CLOUDBASE_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_CLOUDBASE_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_CLOUDBASE_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_CLOUDBASE_CHECK -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_CLOUDBASE_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_CLOUDBASE_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CLOUDBASE_INIT -!> @see G2S4_CLOUDBASE_ALLOC -!> @see G2S4_CLOUDBASE_PRESET -!> @see G2S4_CLOUDBASE_RT -!> @see G2S4_CLOUDBASE_TBE -!> @see G2S4_CLOUDBASE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CLOUDBASE_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_CLOUDBASE_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CLOUDBASE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'CLOUDBASE' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CLOUDBASE_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_CLOUDBASE_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CLOUDBASE_ALLOC -!> @see G2S4_CLOUDBASE_INIT -!> @see G2S4_CLOUDBASE_PRESET -!> @see G2S4_CLOUDBASE_RT -!> @see G2S4_CLOUDBASE_TBE -!> @see G2S4_CLOUDBASE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CLOUDBASE_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_CLOUDBASE_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CLOUDBASE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Allocate cloudBase' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CLOUDBASE_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_CLOUDBASE_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CLOUDBASE_PRESET -!> @see G2S4_CLOUDBASE_ALLOC -!> @see G2S4_CLOUDBASE_INIT -!> @see G2S4_CLOUDBASE_RT -!> @see G2S4_CLOUDBASE_TBE -!> @see G2S4_CLOUDBASE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CLOUDBASE_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_CLOUDBASE_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CLOUDBASE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Preset cloudBase' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CLOUDBASE_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_CLOUDBASE_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CLOUDBASE_RT -!> @see G2S4_CLOUDBASE_ALLOC -!> @see G2S4_CLOUDBASE_INIT -!> @see G2S4_CLOUDBASE_PRESET -!> @see G2S4_CLOUDBASE_TBE -!> @see G2S4_CLOUDBASE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CLOUDBASE_RT' -PP_THREAD_SAFE FUNCTION G2S4_CLOUDBASE_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CLOUDBASE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Runtime cloudBase' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CLOUDBASE_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_CLOUDBASE_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CLOUDBASE_INIT -!> @see G2S4_CLOUDBASE_ALLOC -!> @see G2S4_CLOUDBASE_PRESET -!> @see G2S4_CLOUDBASE_RT -!> @see G2S4_CLOUDBASE_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CLOUDBASE_FREE' -PP_THREAD_SAFE FUNCTION G2S4_CLOUDBASE_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CLOUDBASE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CLOUDBASE_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_CLOUDBASE_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CLOUDBASE_PRESET -!> @see G2S4_CLOUDBASE_ALLOC -!> @see G2S4_CLOUDBASE_INIT -!> @see G2S4_CLOUDBASE_RT -!> @see G2S4_CLOUDBASE_TBE -!> @see G2S4_CLOUDBASE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CLOUDBASE_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_CLOUDBASE_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CLOUDBASE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: cloudBase' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'cloudBase', & -!& 2_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CLOUDBASE_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CLOUDBASE_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_CLOUDBASE_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CLOUDBASE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: cloudBase' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CLOUDBASE_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_CLOUDBASE_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_custom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_custom_mod.F90 deleted file mode 100644 index 708a67413..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_custom_mod.F90 +++ /dev/null @@ -1,1022 +0,0 @@ -!> -!> @file grib2_section4_custom_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_CUSTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_CUSTOM_INIT -!> - @see G2S4_CUSTOM_ALLOC -!> - @see G2S4_CUSTOM_PRESET -!> - @see G2S4_CUSTOM_RT -!> - @see G2S4_CUSTOM_TBE -!> - @see G2S4_CUSTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_custom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_CUSTOM_MOD' -MODULE GRIB2_SECTION4_CUSTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_CUSTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_CUSTOM_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_CUSTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_CUSTOM_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_CUSTOM_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_CUSTOM_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_CUSTOM_FREE - - - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_CUSTOM_SET_LEVELS - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_CUSTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_CUSTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CUSTOM_INIT -!> @see G2S4_CUSTOM_ALLOC -!> @see G2S4_CUSTOM_PRESET -!> @see G2S4_CUSTOM_RT -!> @see G2S4_CUSTOM_TBE -!> @see G2S4_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CUSTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_CUSTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'CUSTOM' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CUSTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_CUSTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CUSTOM_ALLOC -!> @see G2S4_CUSTOM_INIT -!> @see G2S4_CUSTOM_PRESET -!> @see G2S4_CUSTOM_RT -!> @see G2S4_CUSTOM_TBE -!> @see G2S4_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CUSTOM_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_CUSTOM_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_ML_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PV_NOT_ASSOCIATED=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Allocate the section - IF ( MSG%LEVTYPE .EQ. LEVTYPE_ML_E ) THEN - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(PAR%LEVELS%PV), ERRFLAG_PV_NOT_ASSOCIATED ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'PVPresent', .TRUE. ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pv', PAR%LEVELS%PV ) - END IF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_PV_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'pv array not associated in the parametrization' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CUSTOM_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CUSTOM_PRESET -!> @see G2S4_CUSTOM_ALLOC -!> @see G2S4_CUSTOM_INIT -!> @see G2S4_CUSTOM_RT -!> @see G2S4_CUSTOM_TBE -!> @see G2S4_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CUSTOM_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_CUSTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - IF ( OPT%CACHE_STRATEGY .EQ. OPT_CACHE_FULL_E ) THEN - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CUSTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_CUSTOM_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CUSTOM_RT -!> @see G2S4_CUSTOM_ALLOC -!> @see G2S4_CUSTOM_INIT -!> @see G2S4_CUSTOM_PRESET -!> @see G2S4_CUSTOM_TBE -!> @see G2S4_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CUSTOM_RT' -PP_THREAD_SAFE FUNCTION G2S4_CUSTOM_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - IF ( OPT%CACHE_STRATEGY .NE. OPT_CACHE_FULL_E ) THEN - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CUSTOM_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CUSTOM_INIT -!> @see G2S4_CUSTOM_ALLOC -!> @see G2S4_CUSTOM_PRESET -!> @see G2S4_CUSTOM_RT -!> @see G2S4_CUSTOM_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CUSTOM_FREE' -PP_THREAD_SAFE FUNCTION G2S4_CUSTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CUSTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_CUSTOM_PRESET -!> @see G2S4_CUSTOM_ALLOC -!> @see G2S4_CUSTOM_INIT -!> @see G2S4_CUSTOM_RT -!> @see G2S4_CUSTOM_TBE -!> @see G2S4_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_CUSTOM_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_CUSTOM_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_CUSTOM_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_CUSTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_depthbelowsealayer_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_depthbelowsealayer_mod.F90 deleted file mode 100644 index 837818245..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_depthbelowsealayer_mod.F90 +++ /dev/null @@ -1,1238 +0,0 @@ -!> -!> @file grib2_section4_depthbelowsealayer_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_DEPTHBELOWSEALAYER_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_DEPTHBELOWSEALAYER_INIT -!> - @see G2S4_DEPTHBELOWSEALAYER_ALLOC -!> - @see G2S4_DEPTHBELOWSEALAYER_PRESET -!> - @see G2S4_DEPTHBELOWSEALAYER_RT -!> - @see G2S4_DEPTHBELOWSEALAYER_TBE -!> - @see G2S4_DEPTHBELOWSEALAYER_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_depthbelowsealayer_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_DEPTHBELOWSEALAYER_MOD' -MODULE GRIB2_SECTION4_DEPTHBELOWSEALAYER_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'depthBelowSeaLayer' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 160_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 160_JPIB_K -! INTEGER(KIND=JPIB_K), PARAMETER :: SCALED_VALUE_OF_FIRST_FIXED_SURFACE = 80000_JPIB_K -! INTEGER(KIND=JPIB_K), PARAMETER :: SCALE_FACTOR_OF_FIRST_FIXED_SURFACE = 0_JPIB_K -! INTEGER(KIND=JPIB_K), PARAMETER :: SCALED_VALUE_OF_SECOND_FIXED_SURFACE = 45000_JPIB_K -! INTEGER(KIND=JPIB_K), PARAMETER :: SCALE_FACTOR_OF_SECOND_FIXED_SURFACE = 0_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_DEPTHBELOWSEALAYER_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_DEPTHBELOWSEALAYER_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_DEPTHBELOWSEALAYER_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_DEPTHBELOWSEALAYER_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_DEPTHBELOWSEALAYER_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_DEPTHBELOWSEALAYER_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_DEPTHBELOWSEALAYER_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_DEPTHBELOWSEALAYER_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_DEPTHBELOWSEALAYER_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_DEPTHBELOWSEALAYER_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_DEPTHBELOWSEALAYER_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_DEPTHBELOWSEALAYER_INIT -!> @see G2S4_DEPTHBELOWSEALAYER_ALLOC -!> @see G2S4_DEPTHBELOWSEALAYER_PRESET -!> @see G2S4_DEPTHBELOWSEALAYER_RT -!> @see G2S4_DEPTHBELOWSEALAYER_TBE -!> @see G2S4_DEPTHBELOWSEALAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_DEPTHBELOWSEALAYER_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_DEPTHBELOWSEALAYER_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DEPTHBELOWSEALAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'DEPTHBELOWSEALAYER' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_DEPTHBELOWSEALAYER_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_DEPTHBELOWSEALAYER_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_DEPTHBELOWSEALAYER_ALLOC -!> @see G2S4_DEPTHBELOWSEALAYER_INIT -!> @see G2S4_DEPTHBELOWSEALAYER_PRESET -!> @see G2S4_DEPTHBELOWSEALAYER_RT -!> @see G2S4_DEPTHBELOWSEALAYER_TBE -!> @see G2S4_DEPTHBELOWSEALAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_DEPTHBELOWSEALAYER_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_DEPTHBELOWSEALAYER_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DEPTHBELOWSEALAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Allocate the section - PP_LOG_DEVELOP_STR( 'Allocate: depthBelowSeaLayer' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_DEPTHBELOWSEALAYER_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_DEPTHBELOWSEALAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_DEPTHBELOWSEALAYER_PRESET -!> @see G2S4_DEPTHBELOWSEALAYER_ALLOC -!> @see G2S4_DEPTHBELOWSEALAYER_INIT -!> @see G2S4_DEPTHBELOWSEALAYER_RT -!> @see G2S4_DEPTHBELOWSEALAYER_TBE -!> @see G2S4_DEPTHBELOWSEALAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_DEPTHBELOWSEALAYER_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_DEPTHBELOWSEALAYER_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DEPTHBELOWSEALAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Allocate the section - PP_LOG_DEVELOP_STR( 'Preset: depthBelowSeaLayer' ) - - ! According to the options decide where to set the levels (preset or runlevel) - ! IF ( OPT%CACHE_STRATEGY .EQ. OPT_CACHE_FULL_E ) THEN - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - ! ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_DEPTHBELOWSEALAYER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_DEPTHBELOWSEALAYER_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_DEPTHBELOWSEALAYER_RT -!> @see G2S4_DEPTHBELOWSEALAYER_ALLOC -!> @see G2S4_DEPTHBELOWSEALAYER_INIT -!> @see G2S4_DEPTHBELOWSEALAYER_PRESET -!> @see G2S4_DEPTHBELOWSEALAYER_TBE -!> @see G2S4_DEPTHBELOWSEALAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_DEPTHBELOWSEALAYER_RT' -PP_THREAD_SAFE FUNCTION G2S4_DEPTHBELOWSEALAYER_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DEPTHBELOWSEALAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Allocate the section - PP_LOG_DEVELOP_STR( 'Runtime: depthBelowSeaLayer' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - ! IF ( OPT%CACHE_STRATEGY .NE. OPT_CACHE_FULL_E ) THEN - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - ! ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_DEPTHBELOWSEALAYER_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_DEPTHBELOWSEALAYER_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_DEPTHBELOWSEALAYER_INIT -!> @see G2S4_DEPTHBELOWSEALAYER_ALLOC -!> @see G2S4_DEPTHBELOWSEALAYER_PRESET -!> @see G2S4_DEPTHBELOWSEALAYER_RT -!> @see G2S4_DEPTHBELOWSEALAYER_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_DEPTHBELOWSEALAYER_FREE' -PP_THREAD_SAFE FUNCTION G2S4_DEPTHBELOWSEALAYER_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DEPTHBELOWSEALAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_DEPTHBELOWSEALAYER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_DEPTHBELOWSEALAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_DEPTHBELOWSEALAYER_PRESET -!> @see G2S4_DEPTHBELOWSEALAYER_ALLOC -!> @see G2S4_DEPTHBELOWSEALAYER_INIT -!> @see G2S4_DEPTHBELOWSEALAYER_RT -!> @see G2S4_DEPTHBELOWSEALAYER_TBE -!> @see G2S4_DEPTHBELOWSEALAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_DEPTHBELOWSEALAYER_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_DEPTHBELOWSEALAYER_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DEPTHBELOWSEALAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: depthBelowSeaLayer' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface') - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface') - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface') - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface') - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'depthBelowSeaLayer', & -!& 100_JPIB_K, & -!& 100_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = 80000_JPIB_K, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -!& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = 45000_JPIB_K, & -!& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = 0_JPIB_K, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_DEPTHBELOWSEALAYER_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_DEPTHBELOWSEALAYER_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_DEPTHBELOWSEALAYER_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_DEPTHBELOWSEALAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: depthBelowSeaLayer' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) -! & HOOKS, & -! & SCALED_VALUE_OF_FIRST_FIXED_SURFACES = SCALED_VALUE_OF_FIRST_FIXED_SURFACE, & -! & SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = SCALE_FACTOR_OF_FIRST_FIXED_SURFACE, & -! & SCALED_VALUE_OF_SECOND_FIXED_SURFACES = SCALED_VALUE_OF_SECOND_FIXED_SURFACE, & -! & SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = SCALE_FACTOR_OF_SECOND_FIXED_SURFACE ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_DEPTHBELOWSEALAYER_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_DEPTHBELOWSEALAYER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_entireatmosphere_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_entireatmosphere_mod.F90 deleted file mode 100644 index 6dfa4f20b..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_entireatmosphere_mod.F90 +++ /dev/null @@ -1,1220 +0,0 @@ -!> -!> @file grib2_section4_entireatmosphere_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_ENTIREATMOSPHERE_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_ENTIREATMOSPHERE_INIT -!> - @see G2S4_ENTIREATMOSPHERE_ALLOC -!> - @see G2S4_ENTIREATMOSPHERE_PRESET -!> - @see G2S4_ENTIREATMOSPHERE_RT -!> - @see G2S4_ENTIREATMOSPHERE_TBE -!> - @see G2S4_ENTIREATMOSPHERE_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_entireatmosphere_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ENTIREATMOSPHERE_MOD' -MODULE GRIB2_SECTION4_ENTIREATMOSPHERE_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'entireAtmosphere' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 8_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_ENTIREATMOSPHERE_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_ENTIREATMOSPHERE_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_ENTIREATMOSPHERE_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_ENTIREATMOSPHERE_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_ENTIREATMOSPHERE_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_ENTIREATMOSPHERE_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_ENTIREATMOSPHERE_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_ENTIREATMOSPHERE_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_ENTIREATMOSPHERE_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_ENTIREATMOSPHERE_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ENTIREATMOSPHERE_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIREATMOSPHERE_INIT -!> @see G2S4_ENTIREATMOSPHERE_ALLOC -!> @see G2S4_ENTIREATMOSPHERE_PRESET -!> @see G2S4_ENTIREATMOSPHERE_RT -!> @see G2S4_ENTIREATMOSPHERE_TBE -!> @see G2S4_ENTIREATMOSPHERE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIREATMOSPHERE_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_ENTIREATMOSPHERE_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIREATMOSPHERE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'ENTIREATMOSPHERE' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIREATMOSPHERE_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENTIREATMOSPHERE_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIREATMOSPHERE_ALLOC -!> @see G2S4_ENTIREATMOSPHERE_INIT -!> @see G2S4_ENTIREATMOSPHERE_PRESET -!> @see G2S4_ENTIREATMOSPHERE_RT -!> @see G2S4_ENTIREATMOSPHERE_TBE -!> @see G2S4_ENTIREATMOSPHERE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIREATMOSPHERE_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_ENTIREATMOSPHERE_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIREATMOSPHERE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Allocate entireAtmosphere' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIREATMOSPHERE_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENTIREATMOSPHERE_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIREATMOSPHERE_PRESET -!> @see G2S4_ENTIREATMOSPHERE_ALLOC -!> @see G2S4_ENTIREATMOSPHERE_INIT -!> @see G2S4_ENTIREATMOSPHERE_RT -!> @see G2S4_ENTIREATMOSPHERE_TBE -!> @see G2S4_ENTIREATMOSPHERE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIREATMOSPHERE_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_ENTIREATMOSPHERE_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIREATMOSPHERE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset entireAtmosphere' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIREATMOSPHERE_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENTIREATMOSPHERE_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIREATMOSPHERE_RT -!> @see G2S4_ENTIREATMOSPHERE_ALLOC -!> @see G2S4_ENTIREATMOSPHERE_INIT -!> @see G2S4_ENTIREATMOSPHERE_PRESET -!> @see G2S4_ENTIREATMOSPHERE_TBE -!> @see G2S4_ENTIREATMOSPHERE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIREATMOSPHERE_RT' -PP_THREAD_SAFE FUNCTION G2S4_ENTIREATMOSPHERE_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIREATMOSPHERE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime entireAtmosphere' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIREATMOSPHERE_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ENTIREATMOSPHERE_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIREATMOSPHERE_INIT -!> @see G2S4_ENTIREATMOSPHERE_ALLOC -!> @see G2S4_ENTIREATMOSPHERE_PRESET -!> @see G2S4_ENTIREATMOSPHERE_RT -!> @see G2S4_ENTIREATMOSPHERE_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIREATMOSPHERE_FREE' -PP_THREAD_SAFE FUNCTION G2S4_ENTIREATMOSPHERE_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIREATMOSPHERE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIREATMOSPHERE_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENTIREATMOSPHERE_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIREATMOSPHERE_PRESET -!> @see G2S4_ENTIREATMOSPHERE_ALLOC -!> @see G2S4_ENTIREATMOSPHERE_INIT -!> @see G2S4_ENTIREATMOSPHERE_RT -!> @see G2S4_ENTIREATMOSPHERE_TBE -!> @see G2S4_ENTIREATMOSPHERE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIREATMOSPHERE_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_ENTIREATMOSPHERE_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIREATMOSPHERE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: entireAtmosphere' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'entireAtmosphere', & -!& 1_JPIB_K, & -!& 8_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIREATMOSPHERE_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIREATMOSPHERE_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_ENTIREATMOSPHERE_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIREATMOSPHERE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: entireAtmosphere' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIREATMOSPHERE_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_ENTIREATMOSPHERE_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_entirelake_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_entirelake_mod.F90 deleted file mode 100644 index f7e0be3d9..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_entirelake_mod.F90 +++ /dev/null @@ -1,1218 +0,0 @@ -!> -!> @file grib2_section4_entirelake_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_ENTIRELAKE_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_ENTIRELAKE_INIT -!> - @see G2S4_ENTIRELAKE_ALLOC -!> - @see G2S4_ENTIRELAKE_PRESET -!> - @see G2S4_ENTIRELAKE_RT -!> - @see G2S4_ENTIRELAKE_TBE -!> - @see G2S4_ENTIRELAKE_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_entirelake_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ENTIRELAKE_MOD' -MODULE GRIB2_SECTION4_ENTIRELAKE_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'entireLake' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 162_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_ENTIRELAKE_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_ENTIRELAKE_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_ENTIRELAKE_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_ENTIRELAKE_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_ENTIRELAKE_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_ENTIRELAKE_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_ENTIRELAKE_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_ENTIRELAKE_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_ENTIRELAKE_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_ENTIRELAKE_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ENTIRELAKE_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIRELAKE_INIT -!> @see G2S4_ENTIRELAKE_ALLOC -!> @see G2S4_ENTIRELAKE_PRESET -!> @see G2S4_ENTIRELAKE_RT -!> @see G2S4_ENTIRELAKE_TBE -!> @see G2S4_ENTIRELAKE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIRELAKE_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_ENTIRELAKE_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIRELAKE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'ENTIRELAKE' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIRELAKE_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENTIRELAKE_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIRELAKE_ALLOC -!> @see G2S4_ENTIRELAKE_INIT -!> @see G2S4_ENTIRELAKE_PRESET -!> @see G2S4_ENTIRELAKE_RT -!> @see G2S4_ENTIRELAKE_TBE -!> @see G2S4_ENTIRELAKE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIRELAKE_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_ENTIRELAKE_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIRELAKE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Allocate the section - PP_LOG_DEVELOP_STR( 'Allocate: entireLake' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIRELAKE_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENTIRELAKE_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIRELAKE_PRESET -!> @see G2S4_ENTIRELAKE_ALLOC -!> @see G2S4_ENTIRELAKE_INIT -!> @see G2S4_ENTIRELAKE_RT -!> @see G2S4_ENTIRELAKE_TBE -!> @see G2S4_ENTIRELAKE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIRELAKE_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_ENTIRELAKE_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIRELAKE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: entireLake' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIRELAKE_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENTIRELAKE_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIRELAKE_RT -!> @see G2S4_ENTIRELAKE_ALLOC -!> @see G2S4_ENTIRELAKE_INIT -!> @see G2S4_ENTIRELAKE_PRESET -!> @see G2S4_ENTIRELAKE_TBE -!> @see G2S4_ENTIRELAKE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIRELAKE_RT' -PP_THREAD_SAFE FUNCTION G2S4_ENTIRELAKE_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIRELAKE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: entireLake' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIRELAKE_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ENTIRELAKE_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIRELAKE_INIT -!> @see G2S4_ENTIRELAKE_ALLOC -!> @see G2S4_ENTIRELAKE_PRESET -!> @see G2S4_ENTIRELAKE_RT -!> @see G2S4_ENTIRELAKE_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIRELAKE_FREE' -PP_THREAD_SAFE FUNCTION G2S4_ENTIRELAKE_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIRELAKE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIRELAKE_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ENTIRELAKE_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ENTIRELAKE_PRESET -!> @see G2S4_ENTIRELAKE_ALLOC -!> @see G2S4_ENTIRELAKE_INIT -!> @see G2S4_ENTIRELAKE_RT -!> @see G2S4_ENTIRELAKE_TBE -!> @see G2S4_ENTIRELAKE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIRELAKE_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_ENTIRELAKE_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIRELAKE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: entireLake' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'entireLake', & -!& 1_JPIB_K, & -!& 162_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIRELAKE_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ENTIRELAKE_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_ENTIRELAKE_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ENTIRELAKE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: entireLake' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ENTIRELAKE_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_ENTIRELAKE_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightaboveground_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightaboveground_mod.F90 deleted file mode 100644 index 468146da2..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightaboveground_mod.F90 +++ /dev/null @@ -1,1212 +0,0 @@ -!> -!> @file grib2_section4_heightaboveground_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_HEIGHTABOVEGROUND_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_HEIGHTABOVEGROUND_INIT -!> - @see G2S4_HEIGHTABOVEGROUND_ALLOC -!> - @see G2S4_HEIGHTABOVEGROUND_PRESET -!> - @see G2S4_HEIGHTABOVEGROUND_RT -!> - @see G2S4_HEIGHTABOVEGROUND_TBE -!> - @see G2S4_HEIGHTABOVEGROUND_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_heightaboveground_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_HEIGHTABOVEGROUND_MOD' -MODULE GRIB2_SECTION4_HEIGHTABOVEGROUND_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'heightAboveGround' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 103_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_HEIGHTABOVEGROUND_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_HEIGHTABOVEGROUND_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_HEIGHTABOVEGROUND_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_HEIGHTABOVEGROUND_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_HEIGHTABOVEGROUND_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_HEIGHTABOVEGROUND_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_HEIGHTABOVEGROUND_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_HEIGHTABOVEGROUND_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_HEIGHTABOVEGROUND_CHECK - - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_HEIGHTABOVEGROUND_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUND_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUND_INIT -!> @see G2S4_HEIGHTABOVEGROUND_ALLOC -!> @see G2S4_HEIGHTABOVEGROUND_PRESET -!> @see G2S4_HEIGHTABOVEGROUND_RT -!> @see G2S4_HEIGHTABOVEGROUND_TBE -!> @see G2S4_HEIGHTABOVEGROUND_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUND_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUND_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUND_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'HEIGHTABOVEGROUND' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUND_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUND_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUND_ALLOC -!> @see G2S4_HEIGHTABOVEGROUND_INIT -!> @see G2S4_HEIGHTABOVEGROUND_PRESET -!> @see G2S4_HEIGHTABOVEGROUND_RT -!> @see G2S4_HEIGHTABOVEGROUND_TBE -!> @see G2S4_HEIGHTABOVEGROUND_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUND_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUND_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUND_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate heightAboveGround' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUND_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUND_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUND_PRESET -!> @see G2S4_HEIGHTABOVEGROUND_ALLOC -!> @see G2S4_HEIGHTABOVEGROUND_INIT -!> @see G2S4_HEIGHTABOVEGROUND_RT -!> @see G2S4_HEIGHTABOVEGROUND_TBE -!> @see G2S4_HEIGHTABOVEGROUND_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUND_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUND_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUND_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset heightAboveGround' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUND_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUND_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUND_RT -!> @see G2S4_HEIGHTABOVEGROUND_ALLOC -!> @see G2S4_HEIGHTABOVEGROUND_INIT -!> @see G2S4_HEIGHTABOVEGROUND_PRESET -!> @see G2S4_HEIGHTABOVEGROUND_TBE -!> @see G2S4_HEIGHTABOVEGROUND_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUND_RT' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUND_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - USE :: GRIB_API, ONLY: GRIB_GET - USE :: GRIB_API, ONLY: GRIB_SUCCESS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUND_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIM_K) :: HANDLE - INTEGER(KIND=JPIB_K) :: TMP, TMP1 - INTEGER(KIND=JPIM_K) :: KRET - CHARACTER(LEN=:), ALLOCATABLE :: JSON - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime heightAboveGround' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUND_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUND_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUND_INIT -!> @see G2S4_HEIGHTABOVEGROUND_ALLOC -!> @see G2S4_HEIGHTABOVEGROUND_PRESET -!> @see G2S4_HEIGHTABOVEGROUND_RT -!> @see G2S4_HEIGHTABOVEGROUND_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUND_FREE' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUND_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUND_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUND_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUND_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUND_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_SFC_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUND_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: heightAboveGround' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - IF ( MSG%LEVTYPE .NE. LEVTYPE_SFC_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', MSG%LEVELIST ) - ENDIF - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - IF ( MSG%LEVTYPE .NE. LEVTYPE_SFC_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', MSG%LEVELIST ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - ENDIF - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'heightAboveGround', & -!& 103_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUND_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUND_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUND_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_SFC_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUND_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: heightAboveGround' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - IF ( MSG%LEVTYPE .NE. LEVTYPE_SFC_E ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -& LEVEL = MSG%LEVELIST ) - ELSE - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUND_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_HEIGHTABOVEGROUND_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightabovegroundat10m_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightabovegroundat10m_mod.F90 deleted file mode 100644 index 4574b29e0..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightabovegroundat10m_mod.F90 +++ /dev/null @@ -1,1199 +0,0 @@ -!> -!> @file grib2_section4_heightaboveground_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_HEIGHTABOVEGROUNDAT10M_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_HEIGHTABOVEGROUNDAT10M_INIT -!> - @see G2S4_HEIGHTABOVEGROUNDAT10M_ALLOC -!> - @see G2S4_HEIGHTABOVEGROUNDAT10M_PRESET -!> - @see G2S4_HEIGHTABOVEGROUNDAT10M_RT -!> - @see G2S4_HEIGHTABOVEGROUNDAT10M_TBE -!> - @see G2S4_HEIGHTABOVEGROUNDAT10M_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_heightaboveground_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_MOD' -MODULE GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'heightAboveGround' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 103_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_HEIGHTABOVEGROUNDAT10M_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_HEIGHTABOVEGROUNDAT10M_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_HEIGHTABOVEGROUNDAT10M_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_HEIGHTABOVEGROUNDAT10M_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_HEIGHTABOVEGROUNDAT10M_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_HEIGHTABOVEGROUNDAT10M_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_HEIGHTABOVEGROUNDAT10M_CHECK - - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_INIT -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_ALLOC -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_PRESET -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_RT -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_TBE -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT10M_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'HEIGHTABOVEGROUND' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_ALLOC -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_INIT -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_PRESET -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_RT -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_TBE -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT10M_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate heightAboveGroundAt10m' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_PRESET -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_ALLOC -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_INIT -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_RT -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_TBE -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT10M_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset heightAboveGroundAt10m' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_RT -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_ALLOC -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_INIT -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_PRESET -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_TBE -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT10M_RT' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - USE :: GRIB_API, ONLY: GRIB_GET - USE :: GRIB_API, ONLY: GRIB_SUCCESS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIM_K) :: HANDLE - INTEGER(KIND=JPIB_K) :: TMP, TMP1 - INTEGER(KIND=JPIM_K) :: KRET - CHARACTER(LEN=:), ALLOCATABLE :: JSON - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime heightAboveGroundAt10m' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_INIT -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_ALLOC -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_PRESET -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_RT -!> @see G2S4_HEIGHTABOVEGROUNDAT10M_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT10M_FREE' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT10M_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_HL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: heightAboveGroundAt10m' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', 10_JPIB_K ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', 10_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'heightAboveGroundAt10m', & -!& 103_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT10M_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_HL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: heightAboveGroundAt10m' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 10_JPIB_K, & -& LEVEL = MSG%LEVELIST ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT10M_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightabovegroundat2m_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightabovegroundat2m_mod.F90 deleted file mode 100644 index eaa5cfd03..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightabovegroundat2m_mod.F90 +++ /dev/null @@ -1,1199 +0,0 @@ -!> -!> @file grib2_section4_heightaboveground_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_HEIGHTABOVEGROUNDAT2M_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_HEIGHTABOVEGROUNDAT2M_INIT -!> - @see G2S4_HEIGHTABOVEGROUNDAT2M_ALLOC -!> - @see G2S4_HEIGHTABOVEGROUNDAT2M_PRESET -!> - @see G2S4_HEIGHTABOVEGROUNDAT2M_RT -!> - @see G2S4_HEIGHTABOVEGROUNDAT2M_TBE -!> - @see G2S4_HEIGHTABOVEGROUNDAT2M_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_heightaboveground_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_MOD' -MODULE GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'heightAboveGround' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 103_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_HEIGHTABOVEGROUNDAT2M_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_HEIGHTABOVEGROUNDAT2M_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_HEIGHTABOVEGROUNDAT2M_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_HEIGHTABOVEGROUNDAT2M_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_HEIGHTABOVEGROUNDAT2M_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_HEIGHTABOVEGROUNDAT2M_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_HEIGHTABOVEGROUNDAT2M_CHECK - - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_INIT -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_ALLOC -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_PRESET -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_RT -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_TBE -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT2M_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'HEIGHTABOVEGROUND' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_ALLOC -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_INIT -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_PRESET -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_RT -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_TBE -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT2M_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate heightAboveGroundAt2m' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_PRESET -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_ALLOC -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_INIT -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_RT -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_TBE -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT2M_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset heightAboveGroundAt2m' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_RT -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_ALLOC -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_INIT -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_PRESET -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_TBE -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT2M_RT' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - USE :: GRIB_API, ONLY: GRIB_GET - USE :: GRIB_API, ONLY: GRIB_SUCCESS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIM_K) :: HANDLE - INTEGER(KIND=JPIB_K) :: TMP, TMP1 - INTEGER(KIND=JPIM_K) :: KRET - CHARACTER(LEN=:), ALLOCATABLE :: JSON - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime heightAboveGroundAt2m' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_INIT -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_ALLOC -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_PRESET -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_RT -!> @see G2S4_HEIGHTABOVEGROUNDAT2M_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT2M_FREE' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT2M_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_HL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: heightAboveGroundAt2m' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', 2_JPIB_K ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', 2_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'heightAboveGroundAt2m', & -!& 103_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVEGROUNDAT2M_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_HL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: heightAboveGroundAt2m' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 10_JPIB_K, & -& LEVEL = MSG%LEVELIST ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVEGROUNDAT2M_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightabovesea_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightabovesea_mod.F90 deleted file mode 100644 index e52da8da9..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightabovesea_mod.F90 +++ /dev/null @@ -1,1237 +0,0 @@ -!> -!> @file grib2_section4_heightabovesea_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_HEIGHTABOVESEA_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_HEIGHTABOVESEA_INIT -!> - @see G2S4_HEIGHTABOVESEA_ALLOC -!> - @see G2S4_HEIGHTABOVESEA_PRESET -!> - @see G2S4_HEIGHTABOVESEA_RT -!> - @see G2S4_HEIGHTABOVESEA_TBE -!> - @see G2S4_HEIGHTABOVESEA_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_heightabovesea_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_HEIGHTABOVESEA_MOD' -MODULE GRIB2_SECTION4_HEIGHTABOVESEA_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'heightAboveSea' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 102_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_HEIGHTABOVESEA_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_HEIGHTABOVESEA_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_HEIGHTABOVESEA_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_HEIGHTABOVESEA_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_HEIGHTABOVESEA_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_HEIGHTABOVESEA_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_HEIGHTABOVESEA_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_HEIGHTABOVESEA_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_HEIGHTABOVESEA_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_HEIGHTABOVESEA_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEA_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEA_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'HEIGHTABOVESEA' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEA_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate heightAboveSea' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEA_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Preset heightAboveSea' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEA_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_RT' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Runtime heightAboveSea' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEA_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_FREE' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEA_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEA_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_SFC_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: heightAboveSea' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - IF ( MSG%LEVTYPE .NE. LEVTYPE_SFC_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', MSG%LEVELIST ) - ENDIF - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - IF ( MSG%LEVTYPE .NE. LEVTYPE_SFC_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', MSG%LEVELIST ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - ENDIF - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'heightAboveSea', & -!& 102_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_SFC_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: heightAboveSea' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - IF ( MSG%LEVTYPE .NE. LEVTYPE_SFC_E ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K ) - ELSE - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_HEIGHTABOVESEA_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightaboveseaat10m_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightaboveseaat10m_mod.F90 deleted file mode 100644 index 06a2438a5..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightaboveseaat10m_mod.F90 +++ /dev/null @@ -1,1224 +0,0 @@ -!> -!> @file grib2_section4_heightabovesea_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_HEIGHTABOVESEA_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_HEIGHTABOVESEA_INIT -!> - @see G2S4_HEIGHTABOVESEA_ALLOC -!> - @see G2S4_HEIGHTABOVESEA_PRESET -!> - @see G2S4_HEIGHTABOVESEA_RT -!> - @see G2S4_HEIGHTABOVESEA_TBE -!> - @see G2S4_HEIGHTABOVESEA_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_heightaboveseaat10m_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_HEIGHTABOVESEAAT10M_MOD' -MODULE GRIB2_SECTION4_HEIGHTABOVESEAAT10M_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'heightAboveSea' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 102_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_HEIGHTABOVESEA_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_HEIGHTABOVESEA_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_HEIGHTABOVESEA_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_HEIGHTABOVESEA_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_HEIGHTABOVESEA_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_HEIGHTABOVESEA_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_HEIGHTABOVESEA_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'HEIGHTABOVESEAAT10M' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate heightAboveSeaAt10m' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Preset heightAboveSeaAt10m' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_RT' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Runtime heightAboveSeaAt10m' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_FREE' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_HL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: heightAboveSeaAt10m' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', 10_JPIB_K ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', 10_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'heightAboveSea', & -!& 102_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_HL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: heightAboveSeaAt10m' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 10_JPIB_K ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_HEIGHTABOVESEAAT10M_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightaboveseaat2m_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightaboveseaat2m_mod.F90 deleted file mode 100644 index ed65cf044..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_heightaboveseaat2m_mod.F90 +++ /dev/null @@ -1,1225 +0,0 @@ -!> -!> @file grib2_section4_heightabovesea_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_HEIGHTABOVESEA_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_HEIGHTABOVESEA_INIT -!> - @see G2S4_HEIGHTABOVESEA_ALLOC -!> - @see G2S4_HEIGHTABOVESEA_PRESET -!> - @see G2S4_HEIGHTABOVESEA_RT -!> - @see G2S4_HEIGHTABOVESEA_TBE -!> - @see G2S4_HEIGHTABOVESEA_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_heightaboveseaat2m_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_HEIGHTABOVESEAAT2M_MOD' -MODULE GRIB2_SECTION4_HEIGHTABOVESEAAT2M_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'heightAboveSea' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 102_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_HEIGHTABOVESEA_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_HEIGHTABOVESEA_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_HEIGHTABOVESEA_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_HEIGHTABOVESEA_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_HEIGHTABOVESEA_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_HEIGHTABOVESEA_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_HEIGHTABOVESEA_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'HEIGHTABOVESEAAT2M' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate heightAboveSeaAt2m' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Preset heightAboveSeaAt2m' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_RT' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Runtime heightAboveSeaAt2m' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_FREE' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HEIGHTABOVESEA_PRESET -!> @see G2S4_HEIGHTABOVESEA_ALLOC -!> @see G2S4_HEIGHTABOVESEA_INIT -!> @see G2S4_HEIGHTABOVESEA_RT -!> @see G2S4_HEIGHTABOVESEA_TBE -!> @see G2S4_HEIGHTABOVESEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_HL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: heightAboveSeaAt2m' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', 2_JPIB_K ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', 2_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'heightAboveSea', & -!& 102_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HEIGHTABOVESEA_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_HEIGHTABOVESEA_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_HL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: heightAboveSeaAt2m' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 10_JPIB_K ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HEIGHTABOVESEA_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_HEIGHTABOVESEAAT2M_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_highcloudlayer_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_highcloudlayer_mod.F90 deleted file mode 100644 index 17c381986..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_highcloudlayer_mod.F90 +++ /dev/null @@ -1,1231 +0,0 @@ -!> -!> @file grib2_section4_highcloudlayer_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_HIGHCLOUDLAYER_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_HIGHCLOUDLAYER_INIT -!> - @see G2S4_HIGHCLOUDLAYER_ALLOC -!> - @see G2S4_HIGHCLOUDLAYER_PRESET -!> - @see G2S4_HIGHCLOUDLAYER_RT -!> - @see G2S4_HIGHCLOUDLAYER_TBE -!> - @see G2S4_HIGHCLOUDLAYER_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_highcloudlayer_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_HIGHCLOUDLAYER_MOD' -MODULE GRIB2_SECTION4_HIGHCLOUDLAYER_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'highCloudLayer' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 100_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 8_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: SCALED_VALUE_OF_FIRST_FIXED_SURFACE = 45000_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: SCALE_FACTOR_OF_FIRST_FIXED_SURFACE = 0_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_HIGHCLOUDLAYER_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_HIGHCLOUDLAYER_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_HIGHCLOUDLAYER_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_HIGHCLOUDLAYER_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_HIGHCLOUDLAYER_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_HIGHCLOUDLAYER_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_HIGHCLOUDLAYER_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_HIGHCLOUDLAYER_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_HIGHCLOUDLAYER_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_HIGHCLOUDLAYER_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HIGHCLOUDLAYER_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HIGHCLOUDLAYER_INIT -!> @see G2S4_HIGHCLOUDLAYER_ALLOC -!> @see G2S4_HIGHCLOUDLAYER_PRESET -!> @see G2S4_HIGHCLOUDLAYER_RT -!> @see G2S4_HIGHCLOUDLAYER_TBE -!> @see G2S4_HIGHCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HIGHCLOUDLAYER_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_HIGHCLOUDLAYER_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HIGHCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'HIGHCLOUDLAYER' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HIGHCLOUDLAYER_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HIGHCLOUDLAYER_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HIGHCLOUDLAYER_ALLOC -!> @see G2S4_HIGHCLOUDLAYER_INIT -!> @see G2S4_HIGHCLOUDLAYER_PRESET -!> @see G2S4_HIGHCLOUDLAYER_RT -!> @see G2S4_HIGHCLOUDLAYER_TBE -!> @see G2S4_HIGHCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HIGHCLOUDLAYER_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_HIGHCLOUDLAYER_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HIGHCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate highCloudLayer' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HIGHCLOUDLAYER_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HIGHCLOUDLAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HIGHCLOUDLAYER_PRESET -!> @see G2S4_HIGHCLOUDLAYER_ALLOC -!> @see G2S4_HIGHCLOUDLAYER_INIT -!> @see G2S4_HIGHCLOUDLAYER_RT -!> @see G2S4_HIGHCLOUDLAYER_TBE -!> @see G2S4_HIGHCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HIGHCLOUDLAYER_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_HIGHCLOUDLAYER_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HIGHCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset highCloudLayer' ) - - ! According to the options decide where to set the levels (preset or runlevel) - ! IF ( OPT%CACHE_STRATEGY .EQ. OPT_CACHE_FULL_E ) THEN - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - ! ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HIGHCLOUDLAYER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HIGHCLOUDLAYER_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HIGHCLOUDLAYER_RT -!> @see G2S4_HIGHCLOUDLAYER_ALLOC -!> @see G2S4_HIGHCLOUDLAYER_INIT -!> @see G2S4_HIGHCLOUDLAYER_PRESET -!> @see G2S4_HIGHCLOUDLAYER_TBE -!> @see G2S4_HIGHCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HIGHCLOUDLAYER_RT' -PP_THREAD_SAFE FUNCTION G2S4_HIGHCLOUDLAYER_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HIGHCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime highCloudLayer' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - ! IF ( OPT%CACHE_STRATEGY .NE. OPT_CACHE_FULL_E ) THEN - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - ! ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HIGHCLOUDLAYER_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HIGHCLOUDLAYER_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HIGHCLOUDLAYER_INIT -!> @see G2S4_HIGHCLOUDLAYER_ALLOC -!> @see G2S4_HIGHCLOUDLAYER_PRESET -!> @see G2S4_HIGHCLOUDLAYER_RT -!> @see G2S4_HIGHCLOUDLAYER_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HIGHCLOUDLAYER_FREE' -PP_THREAD_SAFE FUNCTION G2S4_HIGHCLOUDLAYER_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HIGHCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HIGHCLOUDLAYER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HIGHCLOUDLAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HIGHCLOUDLAYER_PRESET -!> @see G2S4_HIGHCLOUDLAYER_ALLOC -!> @see G2S4_HIGHCLOUDLAYER_INIT -!> @see G2S4_HIGHCLOUDLAYER_RT -!> @see G2S4_HIGHCLOUDLAYER_TBE -!> @see G2S4_HIGHCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HIGHCLOUDLAYER_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_HIGHCLOUDLAYER_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HIGHCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: highCloudLayer' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', SCALED_VALUE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', SCALE_FACTOR_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'highCloudLayer', & -!& 100_JPIB_K, & -!& 8_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = 45000_JPIB_K, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HIGHCLOUDLAYER_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HIGHCLOUDLAYER_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_HIGHCLOUDLAYER_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HIGHCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: highCloudLayer' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = SCALED_VALUE_OF_FIRST_FIXED_SURFACE, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = SCALE_FACTOR_OF_FIRST_FIXED_SURFACE ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HIGHCLOUDLAYER_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_HIGHCLOUDLAYER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_hybrid_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_hybrid_mod.F90 deleted file mode 100644 index 2a92a50fb..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_hybrid_mod.F90 +++ /dev/null @@ -1,1190 +0,0 @@ -!> -!> @file grib2_section4_hybrid_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_HYBRID_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_HYBRID_INIT -!> - @see G2S4_HYBRID_ALLOC -!> - @see G2S4_HYBRID_PRESET -!> - @see G2S4_HYBRID_RT -!> - @see G2S4_HYBRID_TBE -!> - @see G2S4_HYBRID_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_hybrid_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_HYBRID_MOD' -MODULE GRIB2_SECTION4_HYBRID_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'hybrid' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 105_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_HYBRID_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_HYBRID_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_HYBRID_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_HYBRID_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_HYBRID_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_HYBRID_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_HYBRID_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_HYBRID_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_HYBRID_CHECK - - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_HYBRID_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HYBRID_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HYBRID_INIT -!> @see G2S4_HYBRID_ALLOC -!> @see G2S4_HYBRID_PRESET -!> @see G2S4_HYBRID_RT -!> @see G2S4_HYBRID_TBE -!> @see G2S4_HYBRID_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HYBRID_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_HYBRID_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HYBRID_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'HYBRID' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HYBRID_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HYBRID_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HYBRID_ALLOC -!> @see G2S4_HYBRID_INIT -!> @see G2S4_HYBRID_PRESET -!> @see G2S4_HYBRID_RT -!> @see G2S4_HYBRID_TBE -!> @see G2S4_HYBRID_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HYBRID_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_HYBRID_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_ML_E - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HYBRID_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PV_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate hybrid' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Allocate the section - IF ( MSG%LEVTYPE .EQ. LEVTYPE_ML_E ) THEN - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(PAR%LEVELS%PV), ERRFLAG_PV_NOT_ASSOCIATED ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'PVPresent', .TRUE. ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pv', PAR%LEVELS%PV ) - END IF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_PV_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'pv array not associated in the parametrization' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HYBRID_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HYBRID_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HYBRID_PRESET -!> @see G2S4_HYBRID_ALLOC -!> @see G2S4_HYBRID_INIT -!> @see G2S4_HYBRID_RT -!> @see G2S4_HYBRID_TBE -!> @see G2S4_HYBRID_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HYBRID_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_HYBRID_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HYBRID_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset hybrid' ) - - ! Set the type of level - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HYBRID_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_HYBRID_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HYBRID_RT -!> @see G2S4_HYBRID_ALLOC -!> @see G2S4_HYBRID_INIT -!> @see G2S4_HYBRID_PRESET -!> @see G2S4_HYBRID_TBE -!> @see G2S4_HYBRID_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HYBRID_RT' -PP_THREAD_SAFE FUNCTION G2S4_HYBRID_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HYBRID_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime hybrid' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HYBRID_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_HYBRID_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_HYBRID_INIT -!> @see G2S4_HYBRID_ALLOC -!> @see G2S4_HYBRID_PRESET -!> @see G2S4_HYBRID_RT -!> @see G2S4_HYBRID_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HYBRID_FREE' -PP_THREAD_SAFE FUNCTION G2S4_HYBRID_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HYBRID_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HYBRID_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HYBRID_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_HYBRID_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HYBRID_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: hybrid' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', MSG%LEVELIST ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', MSG%LEVELIST ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'hybrid', & -!& 105_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HYBRID_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_HYBRID_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_HYBRID_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_HYBRID_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: hybrid' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -& LEVEL = MSG%LEVELIST ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_HYBRID_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_HYBRID_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_icelayeronwater_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_icelayeronwater_mod.F90 deleted file mode 100644 index 279324dda..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_icelayeronwater_mod.F90 +++ /dev/null @@ -1,1223 +0,0 @@ -!> -!> @file grib2_section4_icelayeronwater_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_ICELAYERONWATER_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_ICELAYERONWATER_INIT -!> - @see G2S4_ICELAYERONWATER_ALLOC -!> - @see G2S4_ICELAYERONWATER_PRESET -!> - @see G2S4_ICELAYERONWATER_RT -!> - @see G2S4_ICELAYERONWATER_TBE -!> - @see G2S4_ICELAYERONWATER_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_icelayeronwater_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ICELAYERONWATER_MOD' -MODULE GRIB2_SECTION4_ICELAYERONWATER_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'iceLayerOnWater' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 174_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 176_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_ICELAYERONWATER_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_ICELAYERONWATER_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_ICELAYERONWATER_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_ICELAYERONWATER_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_ICELAYERONWATER_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_ICELAYERONWATER_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_ICELAYERONWATER_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_ICELAYERONWATER_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_ICELAYERONWATER_CHECK - - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_ICELAYERONWATER_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ICELAYERONWATER_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICELAYERONWATER_INIT -!> @see G2S4_ICELAYERONWATER_ALLOC -!> @see G2S4_ICELAYERONWATER_PRESET -!> @see G2S4_ICELAYERONWATER_RT -!> @see G2S4_ICELAYERONWATER_TBE -!> @see G2S4_ICELAYERONWATER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICELAYERONWATER_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_ICELAYERONWATER_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICELAYERONWATER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'ICELAYERONWATER' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICELAYERONWATER_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ICELAYERONWATER_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICELAYERONWATER_ALLOC -!> @see G2S4_ICELAYERONWATER_INIT -!> @see G2S4_ICELAYERONWATER_PRESET -!> @see G2S4_ICELAYERONWATER_RT -!> @see G2S4_ICELAYERONWATER_TBE -!> @see G2S4_ICELAYERONWATER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICELAYERONWATER_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_ICELAYERONWATER_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICELAYERONWATER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate iceLayerOnWater' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICELAYERONWATER_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ICELAYERONWATER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICELAYERONWATER_PRESET -!> @see G2S4_ICELAYERONWATER_ALLOC -!> @see G2S4_ICELAYERONWATER_INIT -!> @see G2S4_ICELAYERONWATER_RT -!> @see G2S4_ICELAYERONWATER_TBE -!> @see G2S4_ICELAYERONWATER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICELAYERONWATER_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_ICELAYERONWATER_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICELAYERONWATER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset iceLayerOnWater' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICELAYERONWATER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ICELAYERONWATER_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICELAYERONWATER_RT -!> @see G2S4_ICELAYERONWATER_ALLOC -!> @see G2S4_ICELAYERONWATER_INIT -!> @see G2S4_ICELAYERONWATER_PRESET -!> @see G2S4_ICELAYERONWATER_TBE -!> @see G2S4_ICELAYERONWATER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICELAYERONWATER_RT' -PP_THREAD_SAFE FUNCTION G2S4_ICELAYERONWATER_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICELAYERONWATER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - PP_LOG_DEVELOP_STR( 'Runtime iceLayerOnWater' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICELAYERONWATER_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ICELAYERONWATER_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICELAYERONWATER_INIT -!> @see G2S4_ICELAYERONWATER_ALLOC -!> @see G2S4_ICELAYERONWATER_PRESET -!> @see G2S4_ICELAYERONWATER_RT -!> @see G2S4_ICELAYERONWATER_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICELAYERONWATER_FREE' -PP_THREAD_SAFE FUNCTION G2S4_ICELAYERONWATER_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICELAYERONWATER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICELAYERONWATER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ICELAYERONWATER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICELAYERONWATER_PRESET -!> @see G2S4_ICELAYERONWATER_ALLOC -!> @see G2S4_ICELAYERONWATER_INIT -!> @see G2S4_ICELAYERONWATER_RT -!> @see G2S4_ICELAYERONWATER_TBE -!> @see G2S4_ICELAYERONWATER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICELAYERONWATER_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_ICELAYERONWATER_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICELAYERONWATER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: iceLayerOnWater' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'iceLayerOnWater', & -!& 174_JPIB_K, & -!& 176_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICELAYERONWATER_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICELAYERONWATER_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_ICELAYERONWATER_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICELAYERONWATER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: iceLayerOnWater' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICELAYERONWATER_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_ICELAYERONWATER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_icetoponwater_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_icetoponwater_mod.F90 deleted file mode 100644 index dff6e1da2..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_icetoponwater_mod.F90 +++ /dev/null @@ -1,1221 +0,0 @@ -!> -!> @file grib2_section4_icetoponwater_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_ICETOPONWATER_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_ICETOPONWATER_INIT -!> - @see G2S4_ICETOPONWATER_ALLOC -!> - @see G2S4_ICETOPONWATER_PRESET -!> - @see G2S4_ICETOPONWATER_RT -!> - @see G2S4_ICETOPONWATER_TBE -!> - @see G2S4_ICETOPONWATER_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_icetoponwater_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ICETOPONWATER_MOD' -MODULE GRIB2_SECTION4_ICETOPONWATER_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'iceTopOnWater' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 174_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_ICETOPONWATER_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_ICETOPONWATER_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_ICETOPONWATER_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_ICETOPONWATER_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_ICETOPONWATER_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_ICETOPONWATER_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_ICETOPONWATER_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_ICETOPONWATER_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_ICETOPONWATER_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_ICETOPONWATER_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ICETOPONWATER_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICETOPONWATER_INIT -!> @see G2S4_ICETOPONWATER_ALLOC -!> @see G2S4_ICETOPONWATER_PRESET -!> @see G2S4_ICETOPONWATER_RT -!> @see G2S4_ICETOPONWATER_TBE -!> @see G2S4_ICETOPONWATER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICETOPONWATER_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_ICETOPONWATER_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICETOPONWATER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'ICETOPONWATER' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICETOPONWATER_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ICETOPONWATER_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICETOPONWATER_ALLOC -!> @see G2S4_ICETOPONWATER_INIT -!> @see G2S4_ICETOPONWATER_PRESET -!> @see G2S4_ICETOPONWATER_RT -!> @see G2S4_ICETOPONWATER_TBE -!> @see G2S4_ICETOPONWATER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICETOPONWATER_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_ICETOPONWATER_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICETOPONWATER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Allocate the section - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate iceTopOnWater' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICETOPONWATER_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ICETOPONWATER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICETOPONWATER_PRESET -!> @see G2S4_ICETOPONWATER_ALLOC -!> @see G2S4_ICETOPONWATER_INIT -!> @see G2S4_ICETOPONWATER_RT -!> @see G2S4_ICETOPONWATER_TBE -!> @see G2S4_ICETOPONWATER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICETOPONWATER_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_ICETOPONWATER_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICETOPONWATER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset iceTopOnWater' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICETOPONWATER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ICETOPONWATER_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICETOPONWATER_RT -!> @see G2S4_ICETOPONWATER_ALLOC -!> @see G2S4_ICETOPONWATER_INIT -!> @see G2S4_ICETOPONWATER_PRESET -!> @see G2S4_ICETOPONWATER_TBE -!> @see G2S4_ICETOPONWATER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICETOPONWATER_RT' -PP_THREAD_SAFE FUNCTION G2S4_ICETOPONWATER_RT( THIS, & -& MSG, GEO,PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICETOPONWATER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime iceTopOnWater' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICETOPONWATER_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ICETOPONWATER_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICETOPONWATER_INIT -!> @see G2S4_ICETOPONWATER_ALLOC -!> @see G2S4_ICETOPONWATER_PRESET -!> @see G2S4_ICETOPONWATER_RT -!> @see G2S4_ICETOPONWATER_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICETOPONWATER_FREE' -PP_THREAD_SAFE FUNCTION G2S4_ICETOPONWATER_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICETOPONWATER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICETOPONWATER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ICETOPONWATER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ICETOPONWATER_PRESET -!> @see G2S4_ICETOPONWATER_ALLOC -!> @see G2S4_ICETOPONWATER_INIT -!> @see G2S4_ICETOPONWATER_RT -!> @see G2S4_ICETOPONWATER_TBE -!> @see G2S4_ICETOPONWATER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICETOPONWATER_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_ICETOPONWATER_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICETOPONWATER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: iceTopOnWater' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'iceTopOnWater', & -!& 174_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICETOPONWATER_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ICETOPONWATER_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_ICETOPONWATER_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ICETOPONWATER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: iceTopOnWater' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ICETOPONWATER_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_ICETOPONWATER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_isobaricinhpa_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_isobaricinhpa_mod.F90 deleted file mode 100644 index 4ed7383f7..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_isobaricinhpa_mod.F90 +++ /dev/null @@ -1,1203 +0,0 @@ -!> -!> @file grib2_section4_isobaricinhpa_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_ISOBARICINHPA_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_ISOBARICINHPA_INIT -!> - @see G2S4_ISOBARICINHPA_ALLOC -!> - @see G2S4_ISOBARICINHPA_PRESET -!> - @see G2S4_ISOBARICINHPA_RT -!> - @see G2S4_ISOBARICINHPA_TBE -!> - @see G2S4_ISOBARICINHPA_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_isobaricinhpa_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ISOBARICINHPA_MOD' -MODULE GRIB2_SECTION4_ISOBARICINHPA_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'isobaricInhPa' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 100_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_ISOBARICINHPA_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_ISOBARICINHPA_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_ISOBARICINHPA_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_ISOBARICINHPA_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_ISOBARICINHPA_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_ISOBARICINHPA_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_ISOBARICINHPA_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_ISOBARICINHPA_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_ISOBARICINHPA_CHECK - - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_ISOBARICINHPA_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ISOBARICINHPA_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOBARICINHPA_INIT -!> @see G2S4_ISOBARICINHPA_ALLOC -!> @see G2S4_ISOBARICINHPA_PRESET -!> @see G2S4_ISOBARICINHPA_RT -!> @see G2S4_ISOBARICINHPA_TBE -!> @see G2S4_ISOBARICINHPA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINHPA_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINHPA_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINHPA_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'ISOBARICINHPA' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINHPA_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ISOBARICINHPA_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOBARICINHPA_ALLOC -!> @see G2S4_ISOBARICINHPA_INIT -!> @see G2S4_ISOBARICINHPA_PRESET -!> @see G2S4_ISOBARICINHPA_RT -!> @see G2S4_ISOBARICINHPA_TBE -!> @see G2S4_ISOBARICINHPA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINHPA_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINHPA_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINHPA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: isobaricInhPa' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINHPA_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ISOBARICINHPA_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOBARICINHPA_PRESET -!> @see G2S4_ISOBARICINHPA_ALLOC -!> @see G2S4_ISOBARICINHPA_INIT -!> @see G2S4_ISOBARICINHPA_RT -!> @see G2S4_ISOBARICINHPA_TBE -!> @see G2S4_ISOBARICINHPA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINHPA_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINHPA_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINHPA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: isobaricInhPa' ) - - ! Set the level type - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINHPA_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ISOBARICINHPA_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOBARICINHPA_RT -!> @see G2S4_ISOBARICINHPA_ALLOC -!> @see G2S4_ISOBARICINHPA_INIT -!> @see G2S4_ISOBARICINHPA_PRESET -!> @see G2S4_ISOBARICINHPA_TBE -!> @see G2S4_ISOBARICINHPA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINHPA_RT' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINHPA_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINHPA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: LEVEL - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: isobaricInhPa' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - ! MIVAL: This is an hack to enforce the isobaricInHpa level type. Explicitly setting it in the preset - ! is not enough, as the level type is magically reset by eccodes when I set the paramId - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINHPA_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ISOBARICINHPA_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOBARICINHPA_INIT -!> @see G2S4_ISOBARICINHPA_ALLOC -!> @see G2S4_ISOBARICINHPA_PRESET -!> @see G2S4_ISOBARICINHPA_RT -!> @see G2S4_ISOBARICINHPA_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINHPA_FREE' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINHPA_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINHPA_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINHPA_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINHPA_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINHPA_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINHPA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: LEVEL - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Compute the level - LEVEL = MSG%LEVELIST/100_JPIB_K - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: isobaricInhPa' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pressureUnits', 'hPa' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', MSG%LEVELIST ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the level - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'isobaricInhPa', & -!& 100_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = LEVEL, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = LEVEL, & -!& LEVEL = LEVEL ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINHPA_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINHPA_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINHPA_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINHPA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: LEVEL - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Compute the level - LEVEL = MSG%LEVELIST/100_JPIB_K - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: isobaricInhPa' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the level - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -& LEVEL = LEVEL ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINHPA_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_ISOBARICINHPA_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_isobaricinpa_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_isobaricinpa_mod.F90 deleted file mode 100644 index 5d3ee3d10..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_isobaricinpa_mod.F90 +++ /dev/null @@ -1,1199 +0,0 @@ -!> -!> @file grib2_section4_isobaricinpa_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_ISOBARICINPA_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_ISOBARICINPA_INIT -!> - @see G2S4_ISOBARICINPA_ALLOC -!> - @see G2S4_ISOBARICINPA_PRESET -!> - @see G2S4_ISOBARICINPA_RT -!> - @see G2S4_ISOBARICINPA_TBE -!> - @see G2S4_ISOBARICINPA_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_isobaricinpa_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ISOBARICINPA_MOD' -MODULE GRIB2_SECTION4_ISOBARICINPA_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'isobaricInPa' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 100_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_ISOBARICINPA_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_ISOBARICINPA_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_ISOBARICINPA_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_ISOBARICINPA_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_ISOBARICINPA_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_ISOBARICINPA_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_ISOBARICINPA_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_ISOBARICINPA_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_ISOBARICINPA_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_ISOBARICINPA_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ISOBARICINPA_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOBARICINPA_INIT -!> @see G2S4_ISOBARICINPA_ALLOC -!> @see G2S4_ISOBARICINPA_PRESET -!> @see G2S4_ISOBARICINPA_RT -!> @see G2S4_ISOBARICINPA_TBE -!> @see G2S4_ISOBARICINPA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINPA_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINPA_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINPA_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'ISOBARICINPA' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINPA_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ISOBARICINPA_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOBARICINPA_ALLOC -!> @see G2S4_ISOBARICINPA_INIT -!> @see G2S4_ISOBARICINPA_PRESET -!> @see G2S4_ISOBARICINPA_RT -!> @see G2S4_ISOBARICINPA_TBE -!> @see G2S4_ISOBARICINPA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINPA_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINPA_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINPA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: isobaricInPa' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINPA_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ISOBARICINPA_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOBARICINPA_PRESET -!> @see G2S4_ISOBARICINPA_ALLOC -!> @see G2S4_ISOBARICINPA_INIT -!> @see G2S4_ISOBARICINPA_RT -!> @see G2S4_ISOBARICINPA_TBE -!> @see G2S4_ISOBARICINPA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINPA_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINPA_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINPA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - PP_LOG_DEVELOP_STR( 'Preset: isobaricInPa' ) - - ! Preset the type of level - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINPA_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ISOBARICINPA_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOBARICINPA_RT -!> @see G2S4_ISOBARICINPA_ALLOC -!> @see G2S4_ISOBARICINPA_INIT -!> @see G2S4_ISOBARICINPA_PRESET -!> @see G2S4_ISOBARICINPA_TBE -!> @see G2S4_ISOBARICINPA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINPA_RT' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINPA_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINPA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: isobaricInPa' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Set the level - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINPA_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ISOBARICINPA_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOBARICINPA_INIT -!> @see G2S4_ISOBARICINPA_ALLOC -!> @see G2S4_ISOBARICINPA_PRESET -!> @see G2S4_ISOBARICINPA_RT -!> @see G2S4_ISOBARICINPA_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINPA_FREE' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINPA_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINPA_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINPA_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINPA_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINPA_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINPA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: LEVEL - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Compute the level - LEVEL = MSG%LEVELIST - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: isobaricInPa' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'pressureUnits', 'Pa' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'isobaricInPa', & -!& 100_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = LEVEL, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = LEVEL, & -!& LEVEL = LEVEL ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINPA_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOBARICINPA_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_ISOBARICINPA_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOBARICINPA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: LEVEL - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Compute the level - LEVEL = MSG%LEVELIST - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: isobaricInPa' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = LEVEL, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -& LEVEL = LEVEL ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOBARICINPA_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_ISOBARICINPA_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_isothermal_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_isothermal_mod.F90 deleted file mode 100644 index 0a71fdd08..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_isothermal_mod.F90 +++ /dev/null @@ -1,1200 +0,0 @@ -!> -!> @file grib2_section4_isothermal_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_ISOTHERMAL_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_ISOTHERMAL_INIT -!> - @see G2S4_ISOTHERMAL_ALLOC -!> - @see G2S4_ISOTHERMAL_PRESET -!> - @see G2S4_ISOTHERMAL_RT -!> - @see G2S4_ISOTHERMAL_TBE -!> - @see G2S4_ISOTHERMAL_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_isothermal_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_ISOTHERMAL_MOD' -MODULE GRIB2_SECTION4_ISOTHERMAL_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'isothermal' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 20_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_ISOTHERMAL_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_ISOTHERMAL_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_ISOTHERMAL_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_ISOTHERMAL_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_ISOTHERMAL_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_ISOTHERMAL_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_ISOTHERMAL_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_ISOTHERMAL_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_ISOTHERMAL_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_ISOTHERMAL_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ISOTHERMAL_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOTHERMAL_INIT -!> @see G2S4_ISOTHERMAL_ALLOC -!> @see G2S4_ISOTHERMAL_PRESET -!> @see G2S4_ISOTHERMAL_RT -!> @see G2S4_ISOTHERMAL_TBE -!> @see G2S4_ISOTHERMAL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOTHERMAL_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_ISOTHERMAL_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOTHERMAL_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'ISOTHERMAL' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOTHERMAL_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ISOTHERMAL_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOTHERMAL_ALLOC -!> @see G2S4_ISOTHERMAL_INIT -!> @see G2S4_ISOTHERMAL_PRESET -!> @see G2S4_ISOTHERMAL_RT -!> @see G2S4_ISOTHERMAL_TBE -!> @see G2S4_ISOTHERMAL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOTHERMAL_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_ISOTHERMAL_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOTHERMAL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: isothermal' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOTHERMAL_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ISOTHERMAL_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOTHERMAL_PRESET -!> @see G2S4_ISOTHERMAL_ALLOC -!> @see G2S4_ISOTHERMAL_INIT -!> @see G2S4_ISOTHERMAL_RT -!> @see G2S4_ISOTHERMAL_TBE -!> @see G2S4_ISOTHERMAL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOTHERMAL_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_ISOTHERMAL_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOTHERMAL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - PP_LOG_DEVELOP_STR( 'Preset: isothermal' ) - - ! Preset the type of level - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOTHERMAL_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_ISOTHERMAL_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOTHERMAL_RT -!> @see G2S4_ISOTHERMAL_ALLOC -!> @see G2S4_ISOTHERMAL_INIT -!> @see G2S4_ISOTHERMAL_PRESET -!> @see G2S4_ISOTHERMAL_TBE -!> @see G2S4_ISOTHERMAL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOTHERMAL_RT' -PP_THREAD_SAFE FUNCTION G2S4_ISOTHERMAL_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOTHERMAL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: isothermal' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Set the level - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOTHERMAL_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_ISOTHERMAL_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_ISOTHERMAL_INIT -!> @see G2S4_ISOTHERMAL_ALLOC -!> @see G2S4_ISOTHERMAL_PRESET -!> @see G2S4_ISOTHERMAL_RT -!> @see G2S4_ISOTHERMAL_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOTHERMAL_FREE' -PP_THREAD_SAFE FUNCTION G2S4_ISOTHERMAL_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOTHERMAL_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOTHERMAL_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOTHERMAL_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_ISOTHERMAL_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOTHERMAL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: LEVEL - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Compute the level - LEVEL = MSG%LEVELIST - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: isothermal' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', LEVEL ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'isothermal', & -!& 100_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = LEVEL, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = LEVEL, & -!& LEVEL = LEVEL ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOTHERMAL_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_ISOTHERMAL_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_ISOTHERMAL_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_ISOTHERMAL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: LEVEL - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Compute the level - LEVEL = MSG%LEVELIST - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: isothermal' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = LEVEL, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -& LEVEL = LEVEL ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_ISOTHERMAL_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_ISOTHERMAL_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_lakebottom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_lakebottom_mod.F90 deleted file mode 100644 index ee0746547..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_lakebottom_mod.F90 +++ /dev/null @@ -1,1220 +0,0 @@ -!> -!> @file grib2_section4_lakebottom_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_LAKEBOTTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_LAKEBOTTOM_INIT -!> - @see G2S4_LAKEBOTTOM_ALLOC -!> - @see G2S4_LAKEBOTTOM_PRESET -!> - @see G2S4_LAKEBOTTOM_RT -!> - @see G2S4_LAKEBOTTOM_TBE -!> - @see G2S4_LAKEBOTTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_lakebottom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_LAKEBOTTOM_MOD' -MODULE GRIB2_SECTION4_LAKEBOTTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'lakeBottom' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 162_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_LAKEBOTTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_LAKEBOTTOM_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_LAKEBOTTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_LAKEBOTTOM_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_LAKEBOTTOM_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_LAKEBOTTOM_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_LAKEBOTTOM_FREE - - - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_LAKEBOTTOM_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_LAKEBOTTOM_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_LAKEBOTTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_LAKEBOTTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LAKEBOTTOM_INIT -!> @see G2S4_LAKEBOTTOM_ALLOC -!> @see G2S4_LAKEBOTTOM_PRESET -!> @see G2S4_LAKEBOTTOM_RT -!> @see G2S4_LAKEBOTTOM_TBE -!> @see G2S4_LAKEBOTTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LAKEBOTTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_LAKEBOTTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LAKEBOTTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'LAKEBOTTOM' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LAKEBOTTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_LAKEBOTTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LAKEBOTTOM_ALLOC -!> @see G2S4_LAKEBOTTOM_INIT -!> @see G2S4_LAKEBOTTOM_PRESET -!> @see G2S4_LAKEBOTTOM_RT -!> @see G2S4_LAKEBOTTOM_TBE -!> @see G2S4_LAKEBOTTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LAKEBOTTOM_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_LAKEBOTTOM_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LAKEBOTTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: lakeBottom' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LAKEBOTTOM_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_LAKEBOTTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LAKEBOTTOM_PRESET -!> @see G2S4_LAKEBOTTOM_ALLOC -!> @see G2S4_LAKEBOTTOM_INIT -!> @see G2S4_LAKEBOTTOM_RT -!> @see G2S4_LAKEBOTTOM_TBE -!> @see G2S4_LAKEBOTTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LAKEBOTTOM_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_LAKEBOTTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LAKEBOTTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: lakeBottom' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LAKEBOTTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_LAKEBOTTOM_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LAKEBOTTOM_RT -!> @see G2S4_LAKEBOTTOM_ALLOC -!> @see G2S4_LAKEBOTTOM_INIT -!> @see G2S4_LAKEBOTTOM_PRESET -!> @see G2S4_LAKEBOTTOM_TBE -!> @see G2S4_LAKEBOTTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LAKEBOTTOM_RT' -PP_THREAD_SAFE FUNCTION G2S4_LAKEBOTTOM_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LAKEBOTTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: lakeBottom' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LAKEBOTTOM_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_LAKEBOTTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LAKEBOTTOM_INIT -!> @see G2S4_LAKEBOTTOM_ALLOC -!> @see G2S4_LAKEBOTTOM_PRESET -!> @see G2S4_LAKEBOTTOM_RT -!> @see G2S4_LAKEBOTTOM_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LAKEBOTTOM_FREE' -PP_THREAD_SAFE FUNCTION G2S4_LAKEBOTTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LAKEBOTTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LAKEBOTTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_LAKEBOTTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LAKEBOTTOM_PRESET -!> @see G2S4_LAKEBOTTOM_ALLOC -!> @see G2S4_LAKEBOTTOM_INIT -!> @see G2S4_LAKEBOTTOM_RT -!> @see G2S4_LAKEBOTTOM_TBE -!> @see G2S4_LAKEBOTTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LAKEBOTTOM_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_LAKEBOTTOM_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LAKEBOTTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: lakeBottom' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'lakeBottom', & -!& 162_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LAKEBOTTOM_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LAKEBOTTOM_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_LAKEBOTTOM_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LAKEBOTTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: lakeBottom' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LAKEBOTTOM_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_LAKEBOTTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_level_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_level_factory_mod.F90 deleted file mode 100644 index d29edc165..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_level_factory_mod.F90 +++ /dev/null @@ -1,1512 +0,0 @@ -!> -!> @file grib2_section4_level_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Level Configurator objects. -!> -!> The `GRIB2_SECTION4_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Level Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's leveleters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION4_000_MOD::GRIB2_SECTION4_000_T -!> - @dependency [TYPE] GRIB2_SECTION4_001_MOD::GRIB2_SECTION4_001_T -!> - @dependency [TYPE] GRIB2_SECTION4_002_MOD::GRIB2_SECTION4_002_T -!> - @dependency [TYPE] GRIB2_SECTION4_003_MOD::GRIB2_SECTION4_003_T -!> - @dependency [TYPE] GRIB2_SECTION4_004_MOD::GRIB2_SECTION4_004_T -!> - @dependency [TYPE] GRIB2_SECTION4_005_MOD::GRIB2_SECTION4_005_T -!> - @dependency [TYPE] GRIB2_SECTION4_006_MOD::GRIB2_SECTION4_006_T -!> - @dependency [TYPE] GRIB2_SECTION4_007_MOD::GRIB2_SECTION4_007_T -!> - @dependency [TYPE] GRIB2_SECTION4_008_MOD::GRIB2_SECTION4_008_T -!> - @dependency [TYPE] GRIB2_SECTION4_009_MOD::GRIB2_SECTION4_009_T -!> - @dependency [TYPE] GRIB2_SECTION4_010_MOD::GRIB2_SECTION4_010_T -!> - @dependency [TYPE] GRIB2_SECTION4_011_MOD::GRIB2_SECTION4_011_T -!> - @dependency [TYPE] GRIB2_SECTION4_012_MOD::GRIB2_SECTION4_012_T -!> - @dependency [TYPE] GRIB2_SECTION4_013_MOD::GRIB2_SECTION4_013_T -!> - @dependency [TYPE] GRIB2_SECTION4_014_MOD::GRIB2_SECTION4_014_T -!> - @dependency [TYPE] GRIB2_SECTION4_015_MOD::GRIB2_SECTION4_015_T -!> - @dependency [TYPE] GRIB2_SECTION4_016_MOD::GRIB2_SECTION4_016_T -!> - @dependency [TYPE] GRIB2_SECTION4_017_MOD::GRIB2_SECTION4_017_T -!> - @dependency [TYPE] GRIB2_SECTION4_018_MOD::GRIB2_SECTION4_018_T -!> - @dependency [TYPE] GRIB2_SECTION4_019_MOD::GRIB2_SECTION4_019_T -!> - @dependency [TYPE] GRIB2_SECTION4_020_MOD::GRIB2_SECTION4_020_T -!> - @dependency [TYPE] GRIB2_SECTION4_021_MOD::GRIB2_SECTION4_021_T -!> - @dependency [TYPE] GRIB2_SECTION4_022_MOD::GRIB2_SECTION4_022_T -!> - @dependency [TYPE] GRIB2_SECTION4_023_MOD::GRIB2_SECTION4_023_T -!> - @dependency [TYPE] GRIB2_SECTION4_024_MOD::GRIB2_SECTION4_024_T -!> - @dependency [TYPE] GRIB2_SECTION4_025_MOD::GRIB2_SECTION4_025_T -!> - @dependency [TYPE] GRIB2_SECTION4_026_MOD::GRIB2_SECTION4_026_T -!> - @dependency [TYPE] GRIB2_SECTION4_027_MOD::GRIB2_SECTION4_027_T -!> - @dependency [TYPE] GRIB2_SECTION4_028_MOD::GRIB2_SECTION4_028_T -!> - @dependency [TYPE] GRIB2_SECTION4_029_MOD::GRIB2_SECTION4_029_T -!> - @dependency [TYPE] GRIB2_SECTION4_030_MOD::GRIB2_SECTION4_030_T -!> - @dependency [TYPE] GRIB2_SECTION4_031_MOD::GRIB2_SECTION4_031_T -!> - @dependency [TYPE] GRIB2_SECTION4_032_MOD::GRIB2_SECTION4_032_T -!> - @dependency [TYPE] GRIB2_SECTION4_033_MOD::GRIB2_SECTION4_033_T -!> - @dependency [TYPE] GRIB2_SECTION4_034_MOD::GRIB2_SECTION4_034_T -!> - @dependency [TYPE] GRIB2_SECTION4_035_MOD::GRIB2_SECTION4_035_T -!> - @dependency [TYPE] GRIB2_SECTION4_036_MOD::GRIB2_SECTION4_036_T -!> - @dependency [TYPE] GRIB2_SECTION4_037_MOD::GRIB2_SECTION4_037_T -!> - @dependency [TYPE] GRIB2_SECTION4_038_MOD::GRIB2_SECTION4_038_T -!> - @dependency [TYPE] GRIB2_SECTION4_039_MOD::GRIB2_SECTION4_039_T -!> - @dependency [TYPE] GRIB2_SECTION4_040_MOD::GRIB2_SECTION4_040_T -!> - @dependency [TYPE] GRIB2_SECTION4_041_MOD::GRIB2_SECTION4_041_T -!> - @dependency [TYPE] GRIB2_SECTION4_042_MOD::GRIB2_SECTION4_042_T -!> - @dependency [TYPE] GRIB2_SECTION4_043_MOD::GRIB2_SECTION4_043_T -!> - @dependency [TYPE] GRIB2_SECTION4_044_MOD::GRIB2_SECTION4_044_T -!> - @dependency [TYPE] GRIB2_SECTION4_045_MOD::GRIB2_SECTION4_045_T -!> - @dependency [TYPE] GRIB2_SECTION4_046_MOD::GRIB2_SECTION4_046_T -!> - @dependency [TYPE] GRIB2_SECTION4_047_MOD::GRIB2_SECTION4_047_T -!> - @dependency [TYPE] GRIB2_SECTION4_048_MOD::GRIB2_SECTION4_048_T -!> - @dependency [TYPE] GRIB2_SECTION4_049_MOD::GRIB2_SECTION4_049_T -!> - @dependency [TYPE] GRIB2_SECTION4_050_MOD::GRIB2_SECTION4_050_T -!> - @dependency [TYPE] GRIB2_SECTION4_051_MOD::GRIB2_SECTION4_051_T -!> - @dependency [TYPE] GRIB2_SECTION4_052_MOD::GRIB2_SECTION4_052_T -!> - @dependency [TYPE] GRIB2_SECTION4_053_MOD::GRIB2_SECTION4_053_T -!> - @dependency [TYPE] GRIB2_SECTION4_054_MOD::GRIB2_SECTION4_054_T -!> - @dependency [TYPE] GRIB2_SECTION4_055_MOD::GRIB2_SECTION4_055_T -!> - @dependency [TYPE] GRIB2_SECTION4_056_MOD::GRIB2_SECTION4_056_T -!> - @dependency [TYPE] GRIB2_SECTION4_057_MOD::GRIB2_SECTION4_057_T -!> - @dependency [TYPE] GRIB2_SECTION4_058_MOD::GRIB2_SECTION4_058_T -!> - @dependency [TYPE] GRIB2_SECTION4_059_MOD::GRIB2_SECTION4_059_T -!> - @dependency [TYPE] GRIB2_SECTION4_060_MOD::GRIB2_SECTION4_060_T -!> - @dependency [TYPE] GRIB2_SECTION4_061_MOD::GRIB2_SECTION4_061_T -!> - @dependency [TYPE] GRIB2_SECTION4_062_MOD::GRIB2_SECTION4_062_T -!> - @dependency [TYPE] GRIB2_SECTION4_063_MOD::GRIB2_SECTION4_063_T -!> - @dependency [TYPE] GRIB2_SECTION4_064_MOD::GRIB2_SECTION4_064_T -!> - @dependency [TYPE] GRIB2_SECTION4_065_MOD::GRIB2_SECTION4_065_T -!> - @dependency [TYPE] GRIB2_SECTION4_066_MOD::GRIB2_SECTION4_066_T -!> - @dependency [TYPE] GRIB2_SECTION4_067_MOD::GRIB2_SECTION4_067_T -!> - @dependency [TYPE] GRIB2_SECTION4_068_MOD::GRIB2_SECTION4_068_T -!> - @dependency [TYPE] GRIB2_SECTION4_069_MOD::GRIB2_SECTION4_069_T -!> - @dependency [TYPE] GRIB2_SECTION4_070_MOD::GRIB2_SECTION4_070_T -!> - @dependency [TYPE] GRIB2_SECTION4_071_MOD::GRIB2_SECTION4_071_T -!> - @dependency [TYPE] GRIB2_SECTION4_072_MOD::GRIB2_SECTION4_072_T -!> - @dependency [TYPE] GRIB2_SECTION4_073_MOD::GRIB2_SECTION4_073_T -!> - @dependency [TYPE] GRIB2_SECTION4_074_MOD::GRIB2_SECTION4_074_T -!> - @dependency [TYPE] GRIB2_SECTION4_075_MOD::GRIB2_SECTION4_075_T -!> - @dependency [TYPE] GRIB2_SECTION4_076_MOD::GRIB2_SECTION4_076_T -!> - @dependency [TYPE] GRIB2_SECTION4_077_MOD::GRIB2_SECTION4_077_T -!> - @dependency [TYPE] GRIB2_SECTION4_078_MOD::GRIB2_SECTION4_078_T -!> - @dependency [TYPE] GRIB2_SECTION4_079_MOD::GRIB2_SECTION4_079_T -!> - @dependency [TYPE] GRIB2_SECTION4_080_MOD::GRIB2_SECTION4_080_T -!> - @dependency [TYPE] GRIB2_SECTION4_081_MOD::GRIB2_SECTION4_081_T -!> - @dependency [TYPE] GRIB2_SECTION4_082_MOD::GRIB2_SECTION4_082_T -!> - @dependency [TYPE] GRIB2_SECTION4_083_MOD::GRIB2_SECTION4_083_T -!> - @dependency [TYPE] GRIB2_SECTION4_084_MOD::GRIB2_SECTION4_084_T -!> - @dependency [TYPE] GRIB2_SECTION4_085_MOD::GRIB2_SECTION4_085_T -!> - @dependency [TYPE] GRIB2_SECTION4_086_MOD::GRIB2_SECTION4_086_T -!> - @dependency [TYPE] GRIB2_SECTION4_087_MOD::GRIB2_SECTION4_087_T -!> - @dependency [TYPE] GRIB2_SECTION4_999_MOD::GRIB2_SECTION4_999_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_level_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_LEVEL_FACTORY_MOD' -MODULE GRIB2_SECTION4_LEVEL_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the level_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_LEVEL_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_LEVEL_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_LEVEL_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_LEVEL_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Level Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Level Configurator object -!> based on the provided leveleters. It assigns the proper type (`GRIB2_SECTION4_000_T`) -!> to the `GRIB2_LEVEL_CONFIGURATOR` object and configures it using the provided model leveleters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @level [inout] GRIB2_LEVEL_CONFIGURATOR The GRIB2 Level Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @level [in] ID Integer identifier for the GRIB2 Level Configurator object. -!> @level [in] LEVELS The model leveleters structure of type `MODEL_PAR_T`. -!> @level [in] CFG YAML configuration object used to configure the GRIB2 Level Configurator object. -!> @level [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_SECTION4_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION4_000_MOD::GRIB2_SECTION4_000_T -!> - @dependency [TYPE] GRIB2_SECTION4_001_MOD::GRIB2_SECTION4_001_T -!> - @dependency [TYPE] GRIB2_SECTION4_002_MOD::GRIB2_SECTION4_002_T -!> - @dependency [TYPE] GRIB2_SECTION4_003_MOD::GRIB2_SECTION4_003_T -!> - @dependency [TYPE] GRIB2_SECTION4_004_MOD::GRIB2_SECTION4_004_T -!> - @dependency [TYPE] GRIB2_SECTION4_005_MOD::GRIB2_SECTION4_005_T -!> - @dependency [TYPE] GRIB2_SECTION4_006_MOD::GRIB2_SECTION4_006_T -!> - @dependency [TYPE] GRIB2_SECTION4_007_MOD::GRIB2_SECTION4_007_T -!> - @dependency [TYPE] GRIB2_SECTION4_008_MOD::GRIB2_SECTION4_008_T -!> - @dependency [TYPE] GRIB2_SECTION4_009_MOD::GRIB2_SECTION4_009_T -!> - @dependency [TYPE] GRIB2_SECTION4_010_MOD::GRIB2_SECTION4_010_T -!> - @dependency [TYPE] GRIB2_SECTION4_011_MOD::GRIB2_SECTION4_011_T -!> - @dependency [TYPE] GRIB2_SECTION4_012_MOD::GRIB2_SECTION4_012_T -!> - @dependency [TYPE] GRIB2_SECTION4_013_MOD::GRIB2_SECTION4_013_T -!> - @dependency [TYPE] GRIB2_SECTION4_014_MOD::GRIB2_SECTION4_014_T -!> - @dependency [TYPE] GRIB2_SECTION4_015_MOD::GRIB2_SECTION4_015_T -!> - @dependency [TYPE] GRIB2_SECTION4_016_MOD::GRIB2_SECTION4_016_T -!> - @dependency [TYPE] GRIB2_SECTION4_017_MOD::GRIB2_SECTION4_017_T -!> - @dependency [TYPE] GRIB2_SECTION4_018_MOD::GRIB2_SECTION4_018_T -!> - @dependency [TYPE] GRIB2_SECTION4_019_MOD::GRIB2_SECTION4_019_T -!> - @dependency [TYPE] GRIB2_SECTION4_020_MOD::GRIB2_SECTION4_020_T -!> - @dependency [TYPE] GRIB2_SECTION4_021_MOD::GRIB2_SECTION4_021_T -!> - @dependency [TYPE] GRIB2_SECTION4_022_MOD::GRIB2_SECTION4_022_T -!> - @dependency [TYPE] GRIB2_SECTION4_023_MOD::GRIB2_SECTION4_023_T -!> - @dependency [TYPE] GRIB2_SECTION4_024_MOD::GRIB2_SECTION4_024_T -!> - @dependency [TYPE] GRIB2_SECTION4_025_MOD::GRIB2_SECTION4_025_T -!> - @dependency [TYPE] GRIB2_SECTION4_026_MOD::GRIB2_SECTION4_026_T -!> - @dependency [TYPE] GRIB2_SECTION4_027_MOD::GRIB2_SECTION4_027_T -!> - @dependency [TYPE] GRIB2_SECTION4_028_MOD::GRIB2_SECTION4_028_T -!> - @dependency [TYPE] GRIB2_SECTION4_029_MOD::GRIB2_SECTION4_029_T -!> - @dependency [TYPE] GRIB2_SECTION4_030_MOD::GRIB2_SECTION4_030_T -!> - @dependency [TYPE] GRIB2_SECTION4_031_MOD::GRIB2_SECTION4_031_T -!> - @dependency [TYPE] GRIB2_SECTION4_032_MOD::GRIB2_SECTION4_032_T -!> - @dependency [TYPE] GRIB2_SECTION4_033_MOD::GRIB2_SECTION4_033_T -!> - @dependency [TYPE] GRIB2_SECTION4_034_MOD::GRIB2_SECTION4_034_T -!> - @dependency [TYPE] GRIB2_SECTION4_035_MOD::GRIB2_SECTION4_035_T -!> - @dependency [TYPE] GRIB2_SECTION4_036_MOD::GRIB2_SECTION4_036_T -!> - @dependency [TYPE] GRIB2_SECTION4_037_MOD::GRIB2_SECTION4_037_T -!> - @dependency [TYPE] GRIB2_SECTION4_038_MOD::GRIB2_SECTION4_038_T -!> - @dependency [TYPE] GRIB2_SECTION4_039_MOD::GRIB2_SECTION4_039_T -!> - @dependency [TYPE] GRIB2_SECTION4_040_MOD::GRIB2_SECTION4_040_T -!> - @dependency [TYPE] GRIB2_SECTION4_041_MOD::GRIB2_SECTION4_041_T -!> - @dependency [TYPE] GRIB2_SECTION4_042_MOD::GRIB2_SECTION4_042_T -!> - @dependency [TYPE] GRIB2_SECTION4_043_MOD::GRIB2_SECTION4_043_T -!> - @dependency [TYPE] GRIB2_SECTION4_044_MOD::GRIB2_SECTION4_044_T -!> - @dependency [TYPE] GRIB2_SECTION4_045_MOD::GRIB2_SECTION4_045_T -!> - @dependency [TYPE] GRIB2_SECTION4_046_MOD::GRIB2_SECTION4_046_T -!> - @dependency [TYPE] GRIB2_SECTION4_047_MOD::GRIB2_SECTION4_047_T -!> - @dependency [TYPE] GRIB2_SECTION4_048_MOD::GRIB2_SECTION4_048_T -!> - @dependency [TYPE] GRIB2_SECTION4_049_MOD::GRIB2_SECTION4_049_T -!> - @dependency [TYPE] GRIB2_SECTION4_050_MOD::GRIB2_SECTION4_050_T -!> - @dependency [TYPE] GRIB2_SECTION4_051_MOD::GRIB2_SECTION4_051_T -!> - @dependency [TYPE] GRIB2_SECTION4_052_MOD::GRIB2_SECTION4_052_T -!> - @dependency [TYPE] GRIB2_SECTION4_053_MOD::GRIB2_SECTION4_053_T -!> - @dependency [TYPE] GRIB2_SECTION4_054_MOD::GRIB2_SECTION4_054_T -!> - @dependency [TYPE] GRIB2_SECTION4_055_MOD::GRIB2_SECTION4_055_T -!> - @dependency [TYPE] GRIB2_SECTION4_056_MOD::GRIB2_SECTION4_056_T -!> - @dependency [TYPE] GRIB2_SECTION4_057_MOD::GRIB2_SECTION4_057_T -!> - @dependency [TYPE] GRIB2_SECTION4_058_MOD::GRIB2_SECTION4_058_T -!> - @dependency [TYPE] GRIB2_SECTION4_059_MOD::GRIB2_SECTION4_059_T -!> - @dependency [TYPE] GRIB2_SECTION4_060_MOD::GRIB2_SECTION4_060_T -!> - @dependency [TYPE] GRIB2_SECTION4_061_MOD::GRIB2_SECTION4_061_T -!> - @dependency [TYPE] GRIB2_SECTION4_062_MOD::GRIB2_SECTION4_062_T -!> - @dependency [TYPE] GRIB2_SECTION4_063_MOD::GRIB2_SECTION4_063_T -!> - @dependency [TYPE] GRIB2_SECTION4_064_MOD::GRIB2_SECTION4_064_T -!> - @dependency [TYPE] GRIB2_SECTION4_065_MOD::GRIB2_SECTION4_065_T -!> - @dependency [TYPE] GRIB2_SECTION4_066_MOD::GRIB2_SECTION4_066_T -!> - @dependency [TYPE] GRIB2_SECTION4_067_MOD::GRIB2_SECTION4_067_T -!> - @dependency [TYPE] GRIB2_SECTION4_068_MOD::GRIB2_SECTION4_068_T -!> - @dependency [TYPE] GRIB2_SECTION4_069_MOD::GRIB2_SECTION4_069_T -!> - @dependency [TYPE] GRIB2_SECTION4_070_MOD::GRIB2_SECTION4_070_T -!> - @dependency [TYPE] GRIB2_SECTION4_071_MOD::GRIB2_SECTION4_071_T -!> - @dependency [TYPE] GRIB2_SECTION4_072_MOD::GRIB2_SECTION4_072_T -!> - @dependency [TYPE] GRIB2_SECTION4_073_MOD::GRIB2_SECTION4_073_T -!> - @dependency [TYPE] GRIB2_SECTION4_074_MOD::GRIB2_SECTION4_074_T -!> - @dependency [TYPE] GRIB2_SECTION4_075_MOD::GRIB2_SECTION4_075_T -!> - @dependency [TYPE] GRIB2_SECTION4_076_MOD::GRIB2_SECTION4_076_T -!> - @dependency [TYPE] GRIB2_SECTION4_077_MOD::GRIB2_SECTION4_077_T -!> - @dependency [TYPE] GRIB2_SECTION4_078_MOD::GRIB2_SECTION4_078_T -!> - @dependency [TYPE] GRIB2_SECTION4_079_MOD::GRIB2_SECTION4_079_T -!> - @dependency [TYPE] GRIB2_SECTION4_080_MOD::GRIB2_SECTION4_080_T -!> - @dependency [TYPE] GRIB2_SECTION4_081_MOD::GRIB2_SECTION4_081_T -!> - @dependency [TYPE] GRIB2_SECTION4_082_MOD::GRIB2_SECTION4_082_T -!> - @dependency [TYPE] GRIB2_SECTION4_083_MOD::GRIB2_SECTION4_083_T -!> - @dependency [TYPE] GRIB2_SECTION4_084_MOD::GRIB2_SECTION4_084_T -!> - @dependency [TYPE] GRIB2_SECTION4_085_MOD::GRIB2_SECTION4_085_T -!> - @dependency [TYPE] GRIB2_SECTION4_086_MOD::GRIB2_SECTION4_086_T -!> - @dependency [TYPE] GRIB2_SECTION4_087_MOD::GRIB2_SECTION4_087_T -!> - @dependency [TYPE] GRIB2_SECTION4_999_MOD::GRIB2_SECTION4_999_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_LEVEL_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_LEVEL_CONFIGURATOR_CFG( GRIB2_LEVEL_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_SURFACE_MOD, ONLY: GRIB2_SECTION4_SURFACE_T - USE :: GRIB2_SECTION4_ENTIREATMOSPHERE_MOD, ONLY: GRIB2_SECTION4_ENTIREATMOSPHERE_T - ! USE :: GRIB2_SECTION4_ENTIREOCEAN_MOD, ONLY: GRIB2_SECTION4_ENTIREOCEAN_T - USE :: GRIB2_SECTION4_ENTIRELAKE_MOD, ONLY: GRIB2_SECTION4_ENTIRELAKE_T - USE :: GRIB2_SECTION4_CLOUDBASE_MOD, ONLY: GRIB2_SECTION4_CLOUDBASE_T - ! USE :: GRIB2_SECTION4_CLOUDTOP_MOD, ONLY: GRIB2_SECTION4_CLOUDTOP_T - ! USE :: GRIB2_SECTION4_ISOTHERMZERO_MOD, ONLY: GRIB2_SECTION4_ISOTHERMZERO_T - ! USE :: GRIB2_SECTION4_ADIABATICCONDENSATION_MOD, ONLY: GRIB2_SECTION4_ADIABATICCONDENSATION_T - ! USE :: GRIB2_SECTION4_MAXWIND_MOD, ONLY: GRIB2_SECTION4_MAXWIND_T - USE :: GRIB2_SECTION4_TROPOPAUSE_MOD, ONLY: GRIB2_SECTION4_TROPOPAUSE_T - USE :: GRIB2_SECTION4_NOMINALTOP_MOD, ONLY: GRIB2_SECTION4_NOMINALTOP_T - ! USE :: GRIB2_SECTION4_SEABOTTOM_MOD, ONLY: GRIB2_SECTION4_SEABOTTOM_T - ! USE :: GRIB2_SECTION4_ATMOSPHERE_MOD, ONLY: GRIB2_SECTION4_ATMOSPHERE_T - ! USE :: GRIB2_SECTION4_CUMULONIMBUSBASE_MOD, ONLY: GRIB2_SECTION4_CUMULONIMBUSBASE_T - ! USE :: GRIB2_SECTION4_CUMULONIMBUSTOP_MOD, ONLY: GRIB2_SECTION4_CUMULONIMBUSTOP_T - ! USE :: GRIB2_SECTION4_FREECONVECTION_MOD, ONLY: GRIB2_SECTION4_FREECONVECTION_T - ! USE :: GRIB2_SECTION4_CONVECTIVECONDENSATION_MOD, ONLY: GRIB2_SECTION4_CONVECTIVECONDENSATION_T - ! USE :: GRIB2_SECTION4_NEUTRALBUOYANCY_MOD, ONLY: GRIB2_SECTION4_NEUTRALBUOYANCY_T - USE :: GRIB2_SECTION4_MOSTUNSTABLEPARCEL_MOD, ONLY: GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T - USE :: GRIB2_SECTION4_MIXEDLAYERPARCEL_MOD, ONLY: GRIB2_SECTION4_MIXEDLAYERPARCEL_T - USE :: GRIB2_SECTION4_ISOTHERMAL_MOD, ONLY: GRIB2_SECTION4_ISOTHERMAL_T - USE :: GRIB2_SECTION4_ISOBARICINPA_MOD, ONLY: GRIB2_SECTION4_ISOBARICINPA_T - USE :: GRIB2_SECTION4_ISOBARICINHPA_MOD, ONLY: GRIB2_SECTION4_ISOBARICINHPA_T - ! USE :: GRIB2_SECTION4_ISOBARICLAYER_MOD, ONLY: GRIB2_SECTION4_ISOBARICLAYER_T - USE :: GRIB2_SECTION4_LOWCLOUDLAYER_MOD, ONLY: GRIB2_SECTION4_LOWCLOUDLAYER_T - USE :: GRIB2_SECTION4_MEDIUMCLOUDLAYER_MOD, ONLY: GRIB2_SECTION4_MEDIUMCLOUDLAYER_T - USE :: GRIB2_SECTION4_HIGHCLOUDLAYER_MOD, ONLY: GRIB2_SECTION4_HIGHCLOUDLAYER_T - USE :: GRIB2_SECTION4_MEANSEA_MOD, ONLY: GRIB2_SECTION4_MEANSEA_T - USE :: GRIB2_SECTION4_HEIGHTABOVESEA_MOD, ONLY: GRIB2_SECTION4_HEIGHTABOVESEA_T - USE :: GRIB2_SECTION4_HEIGHTABOVESEAAT10M_MOD, ONLY: GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T - USE :: GRIB2_SECTION4_HEIGHTABOVESEAAT2M_MOD, ONLY: GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T - ! USE :: GRIB2_SECTION4_HEIGHTABOVESEALAYER_MOD, ONLY: GRIB2_SECTION4_HEIGHTABOVESEALAYER_T - USE :: GRIB2_SECTION4_HEIGHTABOVEGROUND_MOD, ONLY: GRIB2_SECTION4_HEIGHTABOVEGROUND_T - USE :: GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_MOD, ONLY: GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T - USE :: GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_MOD, ONLY: GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T - ! USE :: GRIB2_SECTION4_HEIGHTABOVEGROUNDLAYER_MOD, ONLY: GRIB2_SECTION4_HEIGHTABOVEGROUNDLAYER_T - ! USE :: GRIB2_SECTION4_SIGMA_MOD, ONLY: GRIB2_SECTION4_SIGMA_T - ! USE :: GRIB2_SECTION4_SIGMALAYER_MOD, ONLY: GRIB2_SECTION4_SIGMALAYER_T - USE :: GRIB2_SECTION4_HYBRID_MOD, ONLY: GRIB2_SECTION4_HYBRID_T - ! USE :: GRIB2_SECTION4_HYBRIDLAYER_MOD, ONLY: GRIB2_SECTION4_HYBRIDLAYER_T - ! USE :: GRIB2_SECTION4_DEPTHBELOWLAND_MOD, ONLY: GRIB2_SECTION4_DEPTHBELOWLAND_T - ! USE :: GRIB2_SECTION4_DEPTHBELOWLANDLAYER_MOD, ONLY: GRIB2_SECTION4_DEPTHBELOWLANDLAYER_T - USE :: GRIB2_SECTION4_THETA_MOD, ONLY: GRIB2_SECTION4_THETA_T - ! USE :: GRIB2_SECTION4_THETALAYER_MOD, ONLY: GRIB2_SECTION4_THETALAYER_T - ! USE :: GRIB2_SECTION4_PRESSUREFROMGROUND_MOD, ONLY: GRIB2_SECTION4_PRESSUREFROMGROUND_T - ! USE :: GRIB2_SECTION4_PRESSUREFROMGROUNDLAYER_MOD, ONLY: GRIB2_SECTION4_PRESSUREFROMGROUNDLAYER_T - USE :: GRIB2_SECTION4_POTENTIALVORTICITY_MOD, ONLY: GRIB2_SECTION4_POTENTIALVORTICITY_T - ! USE :: GRIB2_SECTION4_ETA_MOD, ONLY: GRIB2_SECTION4_ETA_T - ! USE :: GRIB2_SECTION4_SNOW_MOD, ONLY: GRIB2_SECTION4_SNOW_T - USE :: GRIB2_SECTION4_SNOWLAYER_MOD, ONLY: GRIB2_SECTION4_SNOWLAYER_T - ! USE :: GRIB2_SECTION4_MIXEDLAYERDEPTHGENERIC_MOD, ONLY: GRIB2_SECTION4_MIXEDLAYERDEPTHGENERIC_T - ! USE :: GRIB2_SECTION4_HYBRIDHEIGHT_MOD, ONLY: GRIB2_SECTION4_HYBRIDHEIGHT_T - ! USE :: GRIB2_SECTION4_HYBRIDPRESSURE_MOD, ONLY: GRIB2_SECTION4_HYBRIDPRESSURE_T - ! USE :: GRIB2_SECTION4_GENERALVERTICAL_MOD, ONLY: GRIB2_SECTION4_GENERALVERTICAL_T - ! USE :: GRIB2_SECTION4_GENERALVERTICALLAYER_MOD, ONLY: GRIB2_SECTION4_GENERALVERTICALLAYER_T - ! USE :: GRIB2_SECTION4_SOIL_MOD, ONLY: GRIB2_SECTION4_SOIL_T - USE :: GRIB2_SECTION4_SOILLAYER_MOD, ONLY: GRIB2_SECTION4_SOILLAYER_T - ! USE :: GRIB2_SECTION4_SEAICE_MOD, ONLY: GRIB2_SECTION4_SEAICE_T - USE :: GRIB2_SECTION4_SEAICELAYER_MOD, ONLY: GRIB2_SECTION4_SEAICELAYER_T - ! USE :: GRIB2_SECTION4_DEPTHBELOWSEA_MOD, ONLY: GRIB2_SECTION4_DEPTHBELOWSEA_T - ! USE :: GRIB2_SECTION4_OCEANSURFACE_MOD, ONLY: GRIB2_SECTION4_OCEANSURFACE_T - USE :: GRIB2_SECTION4_DEPTHBELOWSEALAYER_MOD, ONLY: GRIB2_SECTION4_DEPTHBELOWSEALAYER_T - ! USE :: GRIB2_SECTION4_OCEANSURFACETOBOTTOM_MOD, ONLY: GRIB2_SECTION4_OCEANSURFACETOBOTTOM_T - USE :: GRIB2_SECTION4_LAKEBOTTOM_MOD, ONLY: GRIB2_SECTION4_LAKEBOTTOM_T - USE :: GRIB2_SECTION4_MIXINGLAYER_MOD, ONLY: GRIB2_SECTION4_MIXINGLAYER_T - ! USE :: GRIB2_SECTION4_OCEANMODEL_MOD, ONLY: GRIB2_SECTION4_OCEANMODEL_T - ! USE :: GRIB2_SECTION4_OCEANMODELLAYER_MOD, ONLY: GRIB2_SECTION4_OCEANMODELLAYER_T - ! USE :: GRIB2_SECTION4_MIXEDLAYERDEPTHBYDENSITY_MOD, ONLY: GRIB2_SECTION4_MIXEDLAYERDEPTHBYDENSITY_T - ! USE :: GRIB2_SECTION4_MIXEDLAYERDEPTHBYTEMPERATURE_MOD, ONLY: GRIB2_SECTION4_MIXEDLAYERDEPTHBYTEMPERATURE_T - ! USE :: GRIB2_SECTION4_MIXEDLAYERDEPTHBYDIFFUSIVITY_MOD, ONLY: GRIB2_SECTION4_MIXEDLAYERDEPTHBYDIFFUSIVITY_T - ! USE :: GRIB2_SECTION4_SNOWTOPOVERICEONWATER_MOD, ONLY: GRIB2_SECTION4_SNOWTOPOVERICEONWATER_T - ! USE :: GRIB2_SECTION4_SNOWLAYEROVERICEONWATER_MOD, ONLY: GRIB2_SECTION4_SNOWLAYEROVERICEONWATER_T - USE :: GRIB2_SECTION4_ICETOPONWATER_MOD, ONLY: GRIB2_SECTION4_ICETOPONWATER_T - USE :: GRIB2_SECTION4_ICELAYERONWATER_MOD, ONLY: GRIB2_SECTION4_ICELAYERONWATER_T - ! USE :: GRIB2_SECTION4_ICETOPUNDERSNOWONWATER_MOD, ONLY: GRIB2_SECTION4_ICETOPUNDERSNOWONWATER_T - ! USE :: GRIB2_SECTION4_ICELAYERUNDERSNOWONWATER_MOD, ONLY: GRIB2_SECTION4_ICELAYERUNDERSNOWONWATER_T - ! USE :: GRIB2_SECTION4_ICEBOTTOMONWATER_MOD, ONLY: GRIB2_SECTION4_ICEBOTTOMONWATER_T - ! USE :: GRIB2_SECTION4_INDEFINITESOILDEPTH_MOD, ONLY: GRIB2_SECTION4_INDEFINITESOILDEPTH_T - ! USE :: GRIB2_SECTION4_MELTPONDTOP_MOD, ONLY: GRIB2_SECTION4_MELTPONDTOP_T - ! USE :: GRIB2_SECTION4_MELTPONDBOTTOM_MOD, ONLY: GRIB2_SECTION4_MELTPONDBOTTOM_T - ! USE :: GRIB2_SECTION4_ENTIREMELTPOND_MOD, ONLY: GRIB2_SECTION4_ENTIREMELTPOND_T - ! USE :: GRIB2_SECTION4_ICELAYERABOVEWATERSURFACE_MOD, ONLY: GRIB2_SECTION4_ICELAYERABOVEWATERSURFACE_T - ! USE :: GRIB2_SECTION4_WATERSURFACETOISOTHERMALOCEANLAYER_MOD, ONLY: GRIB2_SECTION4_WATERSURFACETOISOTHERMALOCEANLAYER_T - ! USE :: GRIB2_SECTION4_TOTALSOILLAYER_MOD, ONLY: GRIB2_SECTION4_TOTALSOILLAYER_T - ! USE :: GRIB2_SECTION4_ROOTZONE_MOD, ONLY: GRIB2_SECTION4_ROOTZONE_T - ! USE :: GRIB2_SECTION4_ROOF_MOD, ONLY: GRIB2_SECTION4_ROOF_T - ! USE :: GRIB2_SECTION4_ROOFLAYER_MOD, ONLY: GRIB2_SECTION4_ROOFLAYER_T - ! USE :: GRIB2_SECTION4_WALL_MOD, ONLY: GRIB2_SECTION4_WALL_T - ! USE :: GRIB2_SECTION4_WALLLAYER_MOD, ONLY: GRIB2_SECTION4_WALLLAYER_T - ! USE :: GRIB2_SECTION4_ROAD_MOD, ONLY: GRIB2_SECTION4_ROAD_T - ! USE :: GRIB2_SECTION4_ROADLAYER_MOD, ONLY: GRIB2_SECTION4_ROADLAYER_T - ! USE :: GRIB2_SECTION4_URBANCANYON_MOD, ONLY: GRIB2_SECTION4_URBANCANYON_T - USE :: GRIB2_SECTION4_ABSTRACTSINGLELEVEL_MOD, ONLY: GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T - USE :: GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_MOD, ONLY: GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T - USE :: GRIB2_SECTION4_CUSTOM_MOD, ONLY: GRIB2_SECTION4_CUSTOM_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_LEVEL_CONFIGURATOR - INTEGER(KIND=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_LEVEL_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE (0) - - ALLOCATE( GRIB2_SECTION4_SURFACE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (1) - - ALLOCATE( GRIB2_SECTION4_ENTIREATMOSPHERE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (2) -! -! ALLOCATE( GRIB2_SECTION4_ENTIREOCEAN_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! - CASE (3) - - ALLOCATE( GRIB2_SECTION4_ENTIRELAKE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (4) - - ALLOCATE( GRIB2_SECTION4_CLOUDBASE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (5) -! -! ALLOCATE( GRIB2_SECTION4_CLOUDTOP_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (6) -! -! ALLOCATE( GRIB2_SECTION4_ISOTHERMZERO_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (7) -! -! ALLOCATE( GRIB2_SECTION4_ADIABATICCONDENSATION_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (8) -! -! ALLOCATE( GRIB2_SECTION4_MAXWIND_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (9) - - ALLOCATE( GRIB2_SECTION4_TROPOPAUSE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (10) - - ALLOCATE( GRIB2_SECTION4_NOMINALTOP_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (11) -! -! ALLOCATE( GRIB2_SECTION4_SEABOTTOM_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (12) -! -! ALLOCATE( GRIB2_SECTION4_ATMOSPHERE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (13) -! -! ALLOCATE( GRIB2_SECTION4_CUMULONIMBUSBASE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (14) -! -! ALLOCATE( GRIB2_SECTION4_CUMULONIMBUSTOP_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (15) -! -! ALLOCATE( GRIB2_SECTION4_FREECONVECTION_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (16) -! -! ALLOCATE( GRIB2_SECTION4_CONVECTIVECONDENSATION_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (17) -! -! ALLOCATE( GRIB2_SECTION4_NEUTRALBUOYANCY_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (18) - - ALLOCATE( GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (19) - - ALLOCATE( GRIB2_SECTION4_MIXEDLAYERPARCEL_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (20) - - ALLOCATE( GRIB2_SECTION4_ISOTHERMAL_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (21) - - ALLOCATE( GRIB2_SECTION4_ISOBARICINPA_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (22) - - ALLOCATE( GRIB2_SECTION4_ISOBARICINHPA_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (23) -! -! ALLOCATE( GRIB2_SECTION4_ISOBARICLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! - CASE (24) - - ALLOCATE( GRIB2_SECTION4_LOWCLOUDLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (25) - - ALLOCATE( GRIB2_SECTION4_MEDIUMCLOUDLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (26) - - ALLOCATE( GRIB2_SECTION4_HIGHCLOUDLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (27) - - ALLOCATE( GRIB2_SECTION4_MEANSEA_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (28) - - ALLOCATE( GRIB2_SECTION4_HEIGHTABOVESEA_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (29) -! -! ALLOCATE( GRIB2_SECTION4_HEIGHTABOVESEALAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! - CASE (30) - - ALLOCATE( GRIB2_SECTION4_HEIGHTABOVEGROUND_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (31) -! -! ALLOCATE( GRIB2_SECTION4_HEIGHTABOVEGROUNDLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (32) -! -! ALLOCATE( GRIB2_SECTION4_SIGMA_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (33) -! -! ALLOCATE( GRIB2_SECTION4_SIGMALAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! - CASE (34) - - ALLOCATE( GRIB2_SECTION4_HYBRID_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (35) -! -! ALLOCATE( GRIB2_SECTION4_HYBRIDLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (36) -! -! ALLOCATE( GRIB2_SECTION4_DEPTHBELOWLAND_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (37) -! -! ALLOCATE( GRIB2_SECTION4_DEPTHBELOWLANDLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! - CASE (38) - - ALLOCATE( GRIB2_SECTION4_THETA_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (39) -! -! ALLOCATE( GRIB2_SECTION4_THETALAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (40) -! -! ALLOCATE( GRIB2_SECTION4_PRESSUREFROMGROUND_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (41) -! -! ALLOCATE( GRIB2_SECTION4_PRESSUREFROMGROUNDLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! - CASE (42) - - ALLOCATE( GRIB2_SECTION4_POTENTIALVORTICITY_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (43) -! -! ALLOCATE( GRIB2_SECTION4_ETA_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (44) -! -! ALLOCATE( GRIB2_SECTION4_SNOW_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! - CASE (45) - - ALLOCATE( GRIB2_SECTION4_SNOWLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (46) -! -! ALLOCATE( GRIB2_SECTION4_MIXEDLAYERDEPTHGENERIC_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (47) -! -! ALLOCATE( GRIB2_SECTION4_HYBRIDHEIGHT_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (48) -! -! ALLOCATE( GRIB2_SECTION4_HYBRIDPRESSURE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (49) -! -! ALLOCATE( GRIB2_SECTION4_GENERALVERTICAL_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (50) -! -! ALLOCATE( GRIB2_SECTION4_GENERALVERTICALLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (51) -! -! ALLOCATE( GRIB2_SECTION4_SOIL_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! - CASE (52) - - ALLOCATE( GRIB2_SECTION4_SOILLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (53) -! -! ALLOCATE( GRIB2_SECTION4_SEAICE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! - CASE (54) - - ALLOCATE( GRIB2_SECTION4_SEAICELAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (55) -! -! ALLOCATE( GRIB2_SECTION4_DEPTHBELOWSEA_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (56) -! -! ALLOCATE( GRIB2_SECTION4_OCEANSURFACE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! - CASE (57) - - ALLOCATE( GRIB2_SECTION4_DEPTHBELOWSEALAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (58) -! -! ALLOCATE( GRIB2_SECTION4_OCEANSURFACETOBOTTOM_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (59) - - ALLOCATE( GRIB2_SECTION4_LAKEBOTTOM_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (60) - - ALLOCATE( GRIB2_SECTION4_MIXINGLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -! CASE (61) -! -! ALLOCATE( GRIB2_SECTION4_OCEANMODEL_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (62) -! -! ALLOCATE( GRIB2_SECTION4_OCEANMODELLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (63) -! -! ALLOCATE( GRIB2_SECTION4_MIXEDLAYERDEPTHBYDENSITY_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (64) -! -! ALLOCATE( GRIB2_SECTION4_MIXEDLAYERDEPTHBYTEMPERATURE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (65) -! -! ALLOCATE( GRIB2_SECTION4_MIXEDLAYERDEPTHBYDIFFUSIVITY_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (66) -! -! ALLOCATE( GRIB2_SECTION4_SNOWTOPOVERICEONWATER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (67) -! -! ALLOCATE( GRIB2_SECTION4_SNOWLAYEROVERICEONWATER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! - CASE (68) - - ALLOCATE( GRIB2_SECTION4_ICETOPONWATER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (69) - - ALLOCATE( GRIB2_SECTION4_ICELAYERONWATER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (70) -! -! ALLOCATE( GRIB2_SECTION4_ICETOPUNDERSNOWONWATER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (71) -! -! ALLOCATE( GRIB2_SECTION4_ICELAYERUNDERSNOWONWATER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (72) -! -! ALLOCATE( GRIB2_SECTION4_ICEBOTTOMONWATER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (73) -! -! ALLOCATE( GRIB2_SECTION4_INDEFINITESOILDEPTH_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (74) -! -! ALLOCATE( GRIB2_SECTION4_MELTPONDTOP_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (75) -! -! ALLOCATE( GRIB2_SECTION4_MELTPONDBOTTOM_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (76) -! -! ALLOCATE( GRIB2_SECTION4_ENTIREMELTPOND_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (77) -! -! ALLOCATE( GRIB2_SECTION4_ICELAYERABOVEWATERSURFACE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (78) -! -! ALLOCATE( GRIB2_SECTION4_WATERSURFACETOISOTHERMALOCEANLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (79) -! -! ALLOCATE( GRIB2_SECTION4_TOTALSOILLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (80) -! -! ALLOCATE( GRIB2_SECTION4_ROOTZONE_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (81) -! -! ALLOCATE( GRIB2_SECTION4_ROOF_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (82) -! -! ALLOCATE( GRIB2_SECTION4_ROOFLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (83) -! -! ALLOCATE( GRIB2_SECTION4_WALL_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (84) -! -! ALLOCATE( GRIB2_SECTION4_WALLLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (85) -! -! ALLOCATE( GRIB2_SECTION4_ROAD_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (86) -! -! ALLOCATE( GRIB2_SECTION4_ROADLAYER_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -! -! CASE (87) -! -! ALLOCATE( GRIB2_SECTION4_URBANCANYON_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) -! PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - CASE (88) - - ALLOCATE( GRIB2_SECTION4_ABSTRACTSINGLELEVEL_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (89) - - ALLOCATE( GRIB2_SECTION4_ABSTRACTMULTIPLELEVELS_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (200) - - ALLOCATE( GRIB2_SECTION4_HEIGHTABOVESEAAT10M_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (201) - - ALLOCATE( GRIB2_SECTION4_HEIGHTABOVESEAAT2M_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (202) - - ALLOCATE( GRIB2_SECTION4_HEIGHTABOVEGROUNDAT10M_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (203) - - ALLOCATE( GRIB2_SECTION4_HEIGHTABOVEGROUNDAT2M_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (999) - - ALLOCATE( GRIB2_SECTION4_CUSTOM_T::GRIB2_LEVEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_LEVEL_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initializing error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown level_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating level_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing level_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_LEVEL_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Level Configurator structure. -!> -!> This function takes a GRIB2 Level Configurator object (`GRIB2_LEVEL_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @level[in,out] GRIB2_LEVEL_CONFIGURATOR The GRIB2 Level Configurator object to be destroyed. -!> The structure is modified in place. -!> @level [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_LEVEL_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_LEVEL_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_LEVEL_CONFIGURATOR( GRIB2_LEVEL_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_LEVEL_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_LEVEL_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_LEVEL_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_LEVEL_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating level_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing level_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_LEVEL_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Level Configurator object. -!> -!> @section interface -!> @level [in] CFG YAML configuration object used to configure the GRIB2 Level Configurator object. -!> @level [out] LEVEL_CONFIGURATOR_TYPE Identifier of the level_configurator type read from the configuration. -!> @level [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_LEVEL_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_LEVEL_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_LEVEL_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, LEVEL_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KIND=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: LEVEL_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CLEVEL_CONFIGURATOR_TYPE - LOGICAL :: HAS_LEVEL_CONFIGURATOR - LOGICAL :: LEVEL_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=9_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - LEVEL_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the LEVEL_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_KEY, HAS_LEVEL_CONFIGURATOR, HOOKS ) - - !> Read the LEVEL_CONFIGURATOR template number - IF ( HAS_LEVEL_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, LEVEL_CONFIGURATOR_KEY, CLEVEL_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CLEVEL_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CLEVEL_CONFIGURATOR_TYPE, LEVEL_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( LEVEL_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CLEVEL_CONFIGURATOR_TYPE, LEVEL_CONFIGURATOR_TYPE, HOOKS ) - ELSE - - !> Convert prefix to lowercase - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( CLEVEL_CONFIGURATOR_TYPE, CLEVEL_CONFIGURATOR_TYPE, HOOKS ) - - !> Convert to enumerator - SELECT CASE (CLEVEL_CONFIGURATOR_TYPE) - CASE ('surface') - LEVEL_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ('entireatmosphere') - LEVEL_CONFIGURATOR_TYPE = 1_JPIB_K - CASE ('entireocean') - LEVEL_CONFIGURATOR_TYPE = 2_JPIB_K - CASE ('entirelake') - LEVEL_CONFIGURATOR_TYPE = 3_JPIB_K - CASE ('cloudbase') - LEVEL_CONFIGURATOR_TYPE = 4_JPIB_K - CASE ('cloudtop') - LEVEL_CONFIGURATOR_TYPE = 5_JPIB_K - CASE ('isothermzero') - LEVEL_CONFIGURATOR_TYPE = 6_JPIB_K - CASE ('adiabaticcondensation') - LEVEL_CONFIGURATOR_TYPE = 7_JPIB_K - CASE ('maxwind') - LEVEL_CONFIGURATOR_TYPE = 8_JPIB_K - CASE ('tropopause') - LEVEL_CONFIGURATOR_TYPE = 9_JPIB_K - CASE ('nominaltop') - LEVEL_CONFIGURATOR_TYPE = 10_JPIB_K - CASE ('seabottom') - LEVEL_CONFIGURATOR_TYPE = 11_JPIB_K - CASE ('atmosphere') - LEVEL_CONFIGURATOR_TYPE = 12_JPIB_K - CASE ('cumulonimbusbase') - LEVEL_CONFIGURATOR_TYPE = 13_JPIB_K - CASE ('cumulonimbustop') - LEVEL_CONFIGURATOR_TYPE = 14_JPIB_K - CASE ('freeconvection') - LEVEL_CONFIGURATOR_TYPE = 15_JPIB_K - CASE ('convectivecondensation') - LEVEL_CONFIGURATOR_TYPE = 16_JPIB_K - CASE ('neutralbuoyancy') - LEVEL_CONFIGURATOR_TYPE = 17_JPIB_K - CASE ('mostunstableparcel') - LEVEL_CONFIGURATOR_TYPE = 18_JPIB_K - CASE ('mixedlayerparcel') - LEVEL_CONFIGURATOR_TYPE = 19_JPIB_K - CASE ('isothermal') - LEVEL_CONFIGURATOR_TYPE = 20_JPIB_K - CASE ('isobaricinpa') - LEVEL_CONFIGURATOR_TYPE = 21_JPIB_K - CASE ('isobaricinhpa') - LEVEL_CONFIGURATOR_TYPE = 22_JPIB_K - CASE ('isobariclayer') - LEVEL_CONFIGURATOR_TYPE = 23_JPIB_K - CASE ('lowcloudlayer') - LEVEL_CONFIGURATOR_TYPE = 24_JPIB_K - CASE ('mediumcloudlayer') - LEVEL_CONFIGURATOR_TYPE = 25_JPIB_K - CASE ('highcloudlayer') - LEVEL_CONFIGURATOR_TYPE = 26_JPIB_K - CASE ('meansea') - LEVEL_CONFIGURATOR_TYPE = 27_JPIB_K - CASE ('heightabovesea') - LEVEL_CONFIGURATOR_TYPE = 28_JPIB_K - CASE ('heightabovesealayer') - LEVEL_CONFIGURATOR_TYPE = 29_JPIB_K - CASE ('heightaboveground') - LEVEL_CONFIGURATOR_TYPE = 30_JPIB_K - CASE ('heightabovegroundlayer') - LEVEL_CONFIGURATOR_TYPE = 31_JPIB_K - CASE ('sigma') - LEVEL_CONFIGURATOR_TYPE = 32_JPIB_K - CASE ('sigmalayer') - LEVEL_CONFIGURATOR_TYPE = 33_JPIB_K - CASE ('hybrid') - LEVEL_CONFIGURATOR_TYPE = 34_JPIB_K - CASE ('hybridlayer') - LEVEL_CONFIGURATOR_TYPE = 35_JPIB_K - CASE ('depthbelowland') - LEVEL_CONFIGURATOR_TYPE = 36_JPIB_K - CASE ('depthbelowlandlayer') - LEVEL_CONFIGURATOR_TYPE = 37_JPIB_K - CASE ('theta') - LEVEL_CONFIGURATOR_TYPE = 38_JPIB_K - CASE ('thetalayer') - LEVEL_CONFIGURATOR_TYPE = 39_JPIB_K - CASE ('pressurefromground') - LEVEL_CONFIGURATOR_TYPE = 40_JPIB_K - CASE ('pressurefromgroundlayer') - LEVEL_CONFIGURATOR_TYPE = 41_JPIB_K - CASE ('potentialvorticity') - LEVEL_CONFIGURATOR_TYPE = 42_JPIB_K - CASE ('eta') - LEVEL_CONFIGURATOR_TYPE = 43_JPIB_K - CASE ('snow') - LEVEL_CONFIGURATOR_TYPE = 44_JPIB_K - CASE ('snowlayer') - LEVEL_CONFIGURATOR_TYPE = 45_JPIB_K - CASE ('mixedlayerdepthgeneric') - LEVEL_CONFIGURATOR_TYPE = 46_JPIB_K - CASE ('hybridheight') - LEVEL_CONFIGURATOR_TYPE = 47_JPIB_K - CASE ('hybridpressure') - LEVEL_CONFIGURATOR_TYPE = 48_JPIB_K - CASE ('generalvertical') - LEVEL_CONFIGURATOR_TYPE = 49_JPIB_K - CASE ('generalverticallayer') - LEVEL_CONFIGURATOR_TYPE = 50_JPIB_K - CASE ('soil') - LEVEL_CONFIGURATOR_TYPE = 51_JPIB_K - CASE ('soillayer') - LEVEL_CONFIGURATOR_TYPE = 52_JPIB_K - CASE ('seaice') - LEVEL_CONFIGURATOR_TYPE = 53_JPIB_K - CASE ('seaicelayer') - LEVEL_CONFIGURATOR_TYPE = 54_JPIB_K - CASE ('depthbelowsea') - LEVEL_CONFIGURATOR_TYPE = 55_JPIB_K - CASE ('oceansurface') - LEVEL_CONFIGURATOR_TYPE = 56_JPIB_K - CASE ('depthbelowsealayer') - LEVEL_CONFIGURATOR_TYPE = 57_JPIB_K - CASE ('oceansurfacetobottom') - LEVEL_CONFIGURATOR_TYPE = 58_JPIB_K - CASE ('lakebottom') - LEVEL_CONFIGURATOR_TYPE = 59_JPIB_K - CASE ('mixinglayer') - LEVEL_CONFIGURATOR_TYPE = 60_JPIB_K - CASE ('oceanmodel') - LEVEL_CONFIGURATOR_TYPE = 61_JPIB_K - CASE ('oceanmodellayer') - LEVEL_CONFIGURATOR_TYPE = 62_JPIB_K - CASE ('mixedlayerdepthbydensity') - LEVEL_CONFIGURATOR_TYPE = 63_JPIB_K - CASE ('mixedlayerdepthbytemperature') - LEVEL_CONFIGURATOR_TYPE = 64_JPIB_K - CASE ('mixedlayerdepthbydiffusivity') - LEVEL_CONFIGURATOR_TYPE = 65_JPIB_K - CASE ('snowtopovericeonwater') - LEVEL_CONFIGURATOR_TYPE = 66_JPIB_K - CASE ('snowlayerovericeonwater') - LEVEL_CONFIGURATOR_TYPE = 67_JPIB_K - CASE ('icetoponwater') - LEVEL_CONFIGURATOR_TYPE = 68_JPIB_K - CASE ('icelayeronwater') - LEVEL_CONFIGURATOR_TYPE = 69_JPIB_K - CASE ('icetopundersnowonwater') - LEVEL_CONFIGURATOR_TYPE = 70_JPIB_K - CASE ('icelayerundersnowonwater') - LEVEL_CONFIGURATOR_TYPE = 71_JPIB_K - CASE ('icebottomonwater') - LEVEL_CONFIGURATOR_TYPE = 72_JPIB_K - CASE ('indefinitesoildepth') - LEVEL_CONFIGURATOR_TYPE = 73_JPIB_K - CASE ('meltpondtop') - LEVEL_CONFIGURATOR_TYPE = 74_JPIB_K - CASE ('meltpondbottom') - LEVEL_CONFIGURATOR_TYPE = 75_JPIB_K - CASE ('entiremeltpond') - LEVEL_CONFIGURATOR_TYPE = 76_JPIB_K - CASE ('icelayerabovewatersurface') - LEVEL_CONFIGURATOR_TYPE = 77_JPIB_K - CASE ('watersurfacetoisothermaloceanlayer') - LEVEL_CONFIGURATOR_TYPE = 78_JPIB_K - CASE ('totalsoillayer') - LEVEL_CONFIGURATOR_TYPE = 79_JPIB_K - CASE ('rootzone') - LEVEL_CONFIGURATOR_TYPE = 80_JPIB_K - CASE ('roof') - LEVEL_CONFIGURATOR_TYPE = 81_JPIB_K - CASE ('rooflayer') - LEVEL_CONFIGURATOR_TYPE = 82_JPIB_K - CASE ('wall') - LEVEL_CONFIGURATOR_TYPE = 83_JPIB_K - CASE ('walllayer') - LEVEL_CONFIGURATOR_TYPE = 84_JPIB_K - CASE ('road') - LEVEL_CONFIGURATOR_TYPE = 85_JPIB_K - CASE ('roadlayer') - LEVEL_CONFIGURATOR_TYPE = 86_JPIB_K - CASE ('urbancanyon') - LEVEL_CONFIGURATOR_TYPE = 87_JPIB_K - CASE ('abstractsinglelevel') - LEVEL_CONFIGURATOR_TYPE = 88_JPIB_K - CASE ('abstractmultiplelevels') - LEVEL_CONFIGURATOR_TYPE = 89_JPIB_K - CASE ('heightaboveseaat10m') - LEVEL_CONFIGURATOR_TYPE = 200_JPIB_K - CASE ('heightaboveseaat2m') - LEVEL_CONFIGURATOR_TYPE = 201_JPIB_K - CASE ('heightabovegroundat10m') - LEVEL_CONFIGURATOR_TYPE = 202_JPIB_K - CASE ('heightabovegroundat2m') - LEVEL_CONFIGURATOR_TYPE = 203_JPIB_K - CASE ('custom') - LEVEL_CONFIGURATOR_TYPE = 999_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CLEVEL_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'LEVEL_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating LEVEL_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown key: '//CLEVEL_CONFIGURATOR_TYPE ) - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE (ERRFLAG_UNABLE_TO_CONVERT_LC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to lowercase' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_LEVEL_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_LEVEL_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_lowcloudlayer_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_lowcloudlayer_mod.F90 deleted file mode 100644 index 27b2e2f7c..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_lowcloudlayer_mod.F90 +++ /dev/null @@ -1,1229 +0,0 @@ -!> -!> @file grib2_section4_lowcloudlayer_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_LOWCLOUDLAYER_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_LOWCLOUDLAYER_INIT -!> - @see G2S4_LOWCLOUDLAYER_ALLOC -!> - @see G2S4_LOWCLOUDLAYER_PRESET -!> - @see G2S4_LOWCLOUDLAYER_RT -!> - @see G2S4_LOWCLOUDLAYER_TBE -!> - @see G2S4_LOWCLOUDLAYER_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_lowcloudlayer_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_LOWCLOUDLAYER_MOD' -MODULE GRIB2_SECTION4_LOWCLOUDLAYER_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'lowCloudLayer' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 100_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: SCALED_VALUE_SECOND_FIXED_SURFACE = 80000_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: SCALE_FACTOR_SECOND_FIXED_SURFACE = 0_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_LOWCLOUDLAYER_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_LOWCLOUDLAYER_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_LOWCLOUDLAYER_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_LOWCLOUDLAYER_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_LOWCLOUDLAYER_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_LOWCLOUDLAYER_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_LOWCLOUDLAYER_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_LOWCLOUDLAYER_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_LOWCLOUDLAYER_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_LOWCLOUDLAYER_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_LOWCLOUDLAYER_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LOWCLOUDLAYER_INIT -!> @see G2S4_LOWCLOUDLAYER_ALLOC -!> @see G2S4_LOWCLOUDLAYER_PRESET -!> @see G2S4_LOWCLOUDLAYER_RT -!> @see G2S4_LOWCLOUDLAYER_TBE -!> @see G2S4_LOWCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LOWCLOUDLAYER_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_LOWCLOUDLAYER_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LOWCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'LOWCLOUDLAYER' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LOWCLOUDLAYER_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_LOWCLOUDLAYER_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LOWCLOUDLAYER_ALLOC -!> @see G2S4_LOWCLOUDLAYER_INIT -!> @see G2S4_LOWCLOUDLAYER_PRESET -!> @see G2S4_LOWCLOUDLAYER_RT -!> @see G2S4_LOWCLOUDLAYER_TBE -!> @see G2S4_LOWCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LOWCLOUDLAYER_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_LOWCLOUDLAYER_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LOWCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: lowCloudLayer' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LOWCLOUDLAYER_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_LOWCLOUDLAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LOWCLOUDLAYER_PRESET -!> @see G2S4_LOWCLOUDLAYER_ALLOC -!> @see G2S4_LOWCLOUDLAYER_INIT -!> @see G2S4_LOWCLOUDLAYER_RT -!> @see G2S4_LOWCLOUDLAYER_TBE -!> @see G2S4_LOWCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LOWCLOUDLAYER_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_LOWCLOUDLAYER_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LOWCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: lowCloudLayer' ) - - ! According to the options decide where to set the levels (preset or runlevel) - ! IF ( OPT%CACHE_STRATEGY .EQ. OPT_CACHE_FULL_E ) THEN - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - ! ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LOWCLOUDLAYER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_LOWCLOUDLAYER_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LOWCLOUDLAYER_RT -!> @see G2S4_LOWCLOUDLAYER_ALLOC -!> @see G2S4_LOWCLOUDLAYER_INIT -!> @see G2S4_LOWCLOUDLAYER_PRESET -!> @see G2S4_LOWCLOUDLAYER_TBE -!> @see G2S4_LOWCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LOWCLOUDLAYER_RT' -PP_THREAD_SAFE FUNCTION G2S4_LOWCLOUDLAYER_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LOWCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: lowCloudLayer' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - ! IF ( OPT%CACHE_STRATEGY .NE. OPT_CACHE_FULL_E ) THEN - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - ! ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LOWCLOUDLAYER_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_LOWCLOUDLAYER_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LOWCLOUDLAYER_INIT -!> @see G2S4_LOWCLOUDLAYER_ALLOC -!> @see G2S4_LOWCLOUDLAYER_PRESET -!> @see G2S4_LOWCLOUDLAYER_RT -!> @see G2S4_LOWCLOUDLAYER_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LOWCLOUDLAYER_FREE' -PP_THREAD_SAFE FUNCTION G2S4_LOWCLOUDLAYER_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LOWCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LOWCLOUDLAYER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_LOWCLOUDLAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_LOWCLOUDLAYER_PRESET -!> @see G2S4_LOWCLOUDLAYER_ALLOC -!> @see G2S4_LOWCLOUDLAYER_INIT -!> @see G2S4_LOWCLOUDLAYER_RT -!> @see G2S4_LOWCLOUDLAYER_TBE -!> @see G2S4_LOWCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LOWCLOUDLAYER_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_LOWCLOUDLAYER_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LOWCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: lowCloudLayer' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface', SCALED_VALUE_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface', SCALE_FACTOR_SECOND_FIXED_SURFACE ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'lowCloudLayer', & -!& 1_JPIB_K, & -!& 100_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = 80000_JPIB_K, & -!& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = 0_JPIB_K ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LOWCLOUDLAYER_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_LOWCLOUDLAYER_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_LOWCLOUDLAYER_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_LOWCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: lowCloudLayer' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = SCALED_VALUE_SECOND_FIXED_SURFACE, & -& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = SCALE_FACTOR_SECOND_FIXED_SURFACE ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_LOWCLOUDLAYER_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_LOWCLOUDLAYER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_meansea_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_meansea_mod.F90 deleted file mode 100644 index 97ef89bf2..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_meansea_mod.F90 +++ /dev/null @@ -1,1219 +0,0 @@ -!> -!> @file grib2_section4_meansea_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_MEANSEA_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_MEANSEA_INIT -!> - @see G2S4_MEANSEA_ALLOC -!> - @see G2S4_MEANSEA_PRESET -!> - @see G2S4_MEANSEA_RT -!> - @see G2S4_MEANSEA_TBE -!> - @see G2S4_MEANSEA_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_meansea_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_MEANSEA_MOD' -MODULE GRIB2_SECTION4_MEANSEA_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'meanSea' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 101_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_MEANSEA_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_MEANSEA_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_MEANSEA_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_MEANSEA_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_MEANSEA_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_MEANSEA_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_MEANSEA_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_MEANSEA_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_MEANSEA_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_MEANSEA_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MEANSEA_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEANSEA_INIT -!> @see G2S4_MEANSEA_ALLOC -!> @see G2S4_MEANSEA_PRESET -!> @see G2S4_MEANSEA_RT -!> @see G2S4_MEANSEA_TBE -!> @see G2S4_MEANSEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEANSEA_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_MEANSEA_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEANSEA_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'MEANSEA' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEANSEA_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MEANSEA_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEANSEA_ALLOC -!> @see G2S4_MEANSEA_INIT -!> @see G2S4_MEANSEA_PRESET -!> @see G2S4_MEANSEA_RT -!> @see G2S4_MEANSEA_TBE -!> @see G2S4_MEANSEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEANSEA_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_MEANSEA_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEANSEA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: meanSea' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEANSEA_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MEANSEA_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEANSEA_PRESET -!> @see G2S4_MEANSEA_ALLOC -!> @see G2S4_MEANSEA_INIT -!> @see G2S4_MEANSEA_RT -!> @see G2S4_MEANSEA_TBE -!> @see G2S4_MEANSEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEANSEA_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_MEANSEA_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEANSEA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: meanSea' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEANSEA_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MEANSEA_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEANSEA_RT -!> @see G2S4_MEANSEA_ALLOC -!> @see G2S4_MEANSEA_INIT -!> @see G2S4_MEANSEA_PRESET -!> @see G2S4_MEANSEA_TBE -!> @see G2S4_MEANSEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEANSEA_RT' -PP_THREAD_SAFE FUNCTION G2S4_MEANSEA_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEANSEA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: meanSea' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEANSEA_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MEANSEA_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEANSEA_INIT -!> @see G2S4_MEANSEA_ALLOC -!> @see G2S4_MEANSEA_PRESET -!> @see G2S4_MEANSEA_RT -!> @see G2S4_MEANSEA_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEANSEA_FREE' -PP_THREAD_SAFE FUNCTION G2S4_MEANSEA_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEANSEA_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEANSEA_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MEANSEA_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEANSEA_PRESET -!> @see G2S4_MEANSEA_ALLOC -!> @see G2S4_MEANSEA_INIT -!> @see G2S4_MEANSEA_RT -!> @see G2S4_MEANSEA_TBE -!> @see G2S4_MEANSEA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEANSEA_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_MEANSEA_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEANSEA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: meanSea' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'meanSea', & -!& 101_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEANSEA_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEANSEA_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_MEANSEA_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEANSEA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: meanSea' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEANSEA_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_MEANSEA_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mediumcloudlayer_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mediumcloudlayer_mod.F90 deleted file mode 100644 index bf43c502f..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mediumcloudlayer_mod.F90 +++ /dev/null @@ -1,1238 +0,0 @@ -!> -!> @file grib2_section4_mediumcloudlayer_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_MEDIUMCLOUDLAYER_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_MEDIUMCLOUDLAYER_INIT -!> - @see G2S4_MEDIUMCLOUDLAYER_ALLOC -!> - @see G2S4_MEDIUMCLOUDLAYER_PRESET -!> - @see G2S4_MEDIUMCLOUDLAYER_RT -!> - @see G2S4_MEDIUMCLOUDLAYER_TBE -!> - @see G2S4_MEDIUMCLOUDLAYER_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_mediumcloudlayer_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_MEDIUMCLOUDLAYER_MOD' -MODULE GRIB2_SECTION4_MEDIUMCLOUDLAYER_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'mediumCloudLayer' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 100_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 100_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: SCALED_VALUE_OF_FIRST_FIXED_SURFACE = 80000_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: SCALE_FACTOR_OF_FIRST_FIXED_SURFACE = 0_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: SCALED_VALUE_OF_SECOND_FIXED_SURFACE = 45000_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: SCALE_FACTOR_OF_SECOND_FIXED_SURFACE = 0_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_MEDIUMCLOUDLAYER_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_MEDIUMCLOUDLAYER_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_MEDIUMCLOUDLAYER_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_MEDIUMCLOUDLAYER_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_MEDIUMCLOUDLAYER_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_MEDIUMCLOUDLAYER_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_MEDIUMCLOUDLAYER_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_MEDIUMCLOUDLAYER_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_MEDIUMCLOUDLAYER_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_MEDIUMCLOUDLAYER_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MEDIUMCLOUDLAYER_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEDIUMCLOUDLAYER_INIT -!> @see G2S4_MEDIUMCLOUDLAYER_ALLOC -!> @see G2S4_MEDIUMCLOUDLAYER_PRESET -!> @see G2S4_MEDIUMCLOUDLAYER_RT -!> @see G2S4_MEDIUMCLOUDLAYER_TBE -!> @see G2S4_MEDIUMCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEDIUMCLOUDLAYER_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_MEDIUMCLOUDLAYER_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEDIUMCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'MEDIUMCLOUDLAYER' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEDIUMCLOUDLAYER_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MEDIUMCLOUDLAYER_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEDIUMCLOUDLAYER_ALLOC -!> @see G2S4_MEDIUMCLOUDLAYER_INIT -!> @see G2S4_MEDIUMCLOUDLAYER_PRESET -!> @see G2S4_MEDIUMCLOUDLAYER_RT -!> @see G2S4_MEDIUMCLOUDLAYER_TBE -!> @see G2S4_MEDIUMCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEDIUMCLOUDLAYER_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_MEDIUMCLOUDLAYER_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEDIUMCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Allocate the section - PP_LOG_DEVELOP_STR( 'Allocate: mediumCloudLayer' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEDIUMCLOUDLAYER_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MEDIUMCLOUDLAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEDIUMCLOUDLAYER_PRESET -!> @see G2S4_MEDIUMCLOUDLAYER_ALLOC -!> @see G2S4_MEDIUMCLOUDLAYER_INIT -!> @see G2S4_MEDIUMCLOUDLAYER_RT -!> @see G2S4_MEDIUMCLOUDLAYER_TBE -!> @see G2S4_MEDIUMCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEDIUMCLOUDLAYER_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_MEDIUMCLOUDLAYER_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEDIUMCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Allocate the section - PP_LOG_DEVELOP_STR( 'Preset: mediumCloudLayer' ) - - ! According to the options decide where to set the levels (preset or runlevel) - ! IF ( OPT%CACHE_STRATEGY .EQ. OPT_CACHE_FULL_E ) THEN - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - ! ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEDIUMCLOUDLAYER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MEDIUMCLOUDLAYER_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEDIUMCLOUDLAYER_RT -!> @see G2S4_MEDIUMCLOUDLAYER_ALLOC -!> @see G2S4_MEDIUMCLOUDLAYER_INIT -!> @see G2S4_MEDIUMCLOUDLAYER_PRESET -!> @see G2S4_MEDIUMCLOUDLAYER_TBE -!> @see G2S4_MEDIUMCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEDIUMCLOUDLAYER_RT' -PP_THREAD_SAFE FUNCTION G2S4_MEDIUMCLOUDLAYER_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEDIUMCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Allocate the section - PP_LOG_DEVELOP_STR( 'Runtime: mediumCloudLayer' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - ! IF ( OPT%CACHE_STRATEGY .NE. OPT_CACHE_FULL_E ) THEN - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ) - ! ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEDIUMCLOUDLAYER_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MEDIUMCLOUDLAYER_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEDIUMCLOUDLAYER_INIT -!> @see G2S4_MEDIUMCLOUDLAYER_ALLOC -!> @see G2S4_MEDIUMCLOUDLAYER_PRESET -!> @see G2S4_MEDIUMCLOUDLAYER_RT -!> @see G2S4_MEDIUMCLOUDLAYER_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEDIUMCLOUDLAYER_FREE' -PP_THREAD_SAFE FUNCTION G2S4_MEDIUMCLOUDLAYER_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEDIUMCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEDIUMCLOUDLAYER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MEDIUMCLOUDLAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MEDIUMCLOUDLAYER_PRESET -!> @see G2S4_MEDIUMCLOUDLAYER_ALLOC -!> @see G2S4_MEDIUMCLOUDLAYER_INIT -!> @see G2S4_MEDIUMCLOUDLAYER_RT -!> @see G2S4_MEDIUMCLOUDLAYER_TBE -!> @see G2S4_MEDIUMCLOUDLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEDIUMCLOUDLAYER_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_MEDIUMCLOUDLAYER_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEDIUMCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: mediumCloudLayer' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', SCALED_VALUE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', SCALE_FACTOR_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface', SCALED_VALUE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface', SCALE_FACTOR_OF_SECOND_FIXED_SURFACE ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'mediumCloudLayer', & -!& 100_JPIB_K, & -!& 100_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = 80000_JPIB_K, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -!& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = 45000_JPIB_K, & -!& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = 0_JPIB_K, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEDIUMCLOUDLAYER_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MEDIUMCLOUDLAYER_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_MEDIUMCLOUDLAYER_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MEDIUMCLOUDLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: mediumCloudLayer' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = SCALED_VALUE_OF_FIRST_FIXED_SURFACE, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = SCALE_FACTOR_OF_FIRST_FIXED_SURFACE, & -& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = SCALED_VALUE_OF_SECOND_FIXED_SURFACE, & -& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = SCALE_FACTOR_OF_SECOND_FIXED_SURFACE ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MEDIUMCLOUDLAYER_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_MEDIUMCLOUDLAYER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mixedlayerparcel_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mixedlayerparcel_mod.F90 deleted file mode 100644 index f6042176b..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mixedlayerparcel_mod.F90 +++ /dev/null @@ -1,1218 +0,0 @@ -!> -!> @file grib2_section4_mixedlayerparcel_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_MIXEDLAYERPARCEL_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_MIXEDLAYERPARCEL_INIT -!> - @see G2S4_MIXEDLAYERPARCEL_ALLOC -!> - @see G2S4_MIXEDLAYERPARCEL_PRESET -!> - @see G2S4_MIXEDLAYERPARCEL_RT -!> - @see G2S4_MIXEDLAYERPARCEL_TBE -!> - @see G2S4_MIXEDLAYERPARCEL_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_mixedlayerparcel_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_MIXEDLAYERPARCEL_MOD' -MODULE GRIB2_SECTION4_MIXEDLAYERPARCEL_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'mixedLayerParcel' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 18_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_MIXEDLAYERPARCEL_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_MIXEDLAYERPARCEL_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_MIXEDLAYERPARCEL_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_MIXEDLAYERPARCEL_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_MIXEDLAYERPARCEL_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_MIXEDLAYERPARCEL_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_MIXEDLAYERPARCEL_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_MIXEDLAYERPARCEL_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_MIXEDLAYERPARCEL_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_MIXEDLAYERPARCEL_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MIXEDLAYERPARCEL_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXEDLAYERPARCEL_INIT -!> @see G2S4_MIXEDLAYERPARCEL_ALLOC -!> @see G2S4_MIXEDLAYERPARCEL_PRESET -!> @see G2S4_MIXEDLAYERPARCEL_RT -!> @see G2S4_MIXEDLAYERPARCEL_TBE -!> @see G2S4_MIXEDLAYERPARCEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXEDLAYERPARCEL_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_MIXEDLAYERPARCEL_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXEDLAYERPARCEL_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'MIXEDLAYERPARCEL' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXEDLAYERPARCEL_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MIXEDLAYERPARCEL_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXEDLAYERPARCEL_ALLOC -!> @see G2S4_MIXEDLAYERPARCEL_INIT -!> @see G2S4_MIXEDLAYERPARCEL_PRESET -!> @see G2S4_MIXEDLAYERPARCEL_RT -!> @see G2S4_MIXEDLAYERPARCEL_TBE -!> @see G2S4_MIXEDLAYERPARCEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXEDLAYERPARCEL_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_MIXEDLAYERPARCEL_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXEDLAYERPARCEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: mixedLayerParcel' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXEDLAYERPARCEL_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MIXEDLAYERPARCEL_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXEDLAYERPARCEL_PRESET -!> @see G2S4_MIXEDLAYERPARCEL_ALLOC -!> @see G2S4_MIXEDLAYERPARCEL_INIT -!> @see G2S4_MIXEDLAYERPARCEL_RT -!> @see G2S4_MIXEDLAYERPARCEL_TBE -!> @see G2S4_MIXEDLAYERPARCEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXEDLAYERPARCEL_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_MIXEDLAYERPARCEL_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXEDLAYERPARCEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: mixedLayerParcel' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXEDLAYERPARCEL_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MIXEDLAYERPARCEL_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXEDLAYERPARCEL_RT -!> @see G2S4_MIXEDLAYERPARCEL_ALLOC -!> @see G2S4_MIXEDLAYERPARCEL_INIT -!> @see G2S4_MIXEDLAYERPARCEL_PRESET -!> @see G2S4_MIXEDLAYERPARCEL_TBE -!> @see G2S4_MIXEDLAYERPARCEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXEDLAYERPARCEL_RT' -PP_THREAD_SAFE FUNCTION G2S4_MIXEDLAYERPARCEL_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXEDLAYERPARCEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: mixedLayerParcel' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXEDLAYERPARCEL_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MIXEDLAYERPARCEL_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXEDLAYERPARCEL_INIT -!> @see G2S4_MIXEDLAYERPARCEL_ALLOC -!> @see G2S4_MIXEDLAYERPARCEL_PRESET -!> @see G2S4_MIXEDLAYERPARCEL_RT -!> @see G2S4_MIXEDLAYERPARCEL_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXEDLAYERPARCEL_FREE' -PP_THREAD_SAFE FUNCTION G2S4_MIXEDLAYERPARCEL_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXEDLAYERPARCEL_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXEDLAYERPARCEL_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MIXEDLAYERPARCEL_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXEDLAYERPARCEL_PRESET -!> @see G2S4_MIXEDLAYERPARCEL_ALLOC -!> @see G2S4_MIXEDLAYERPARCEL_INIT -!> @see G2S4_MIXEDLAYERPARCEL_RT -!> @see G2S4_MIXEDLAYERPARCEL_TBE -!> @see G2S4_MIXEDLAYERPARCEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXEDLAYERPARCEL_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_MIXEDLAYERPARCEL_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXEDLAYERPARCEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: mixedLayerParcel' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'mixedLayerParcel', & -!& 18_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXEDLAYERPARCEL_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXEDLAYERPARCEL_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_MIXEDLAYERPARCEL_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXEDLAYERPARCEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: mixedLayerParcel' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXEDLAYERPARCEL_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_MIXEDLAYERPARCEL_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mixinglayer_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mixinglayer_mod.F90 deleted file mode 100644 index 25fcdac4c..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mixinglayer_mod.F90 +++ /dev/null @@ -1,1218 +0,0 @@ -!> -!> @file grib2_section4_mixinglayer_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_MIXINGLAYER_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_MIXINGLAYER_INIT -!> - @see G2S4_MIXINGLAYER_ALLOC -!> - @see G2S4_MIXINGLAYER_PRESET -!> - @see G2S4_MIXINGLAYER_RT -!> - @see G2S4_MIXINGLAYER_TBE -!> - @see G2S4_MIXINGLAYER_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_mixinglayer_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_MIXINGLAYER_MOD' -MODULE GRIB2_SECTION4_MIXINGLAYER_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'mixingLayer' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 166_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_MIXINGLAYER_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_MIXINGLAYER_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_MIXINGLAYER_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_MIXINGLAYER_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_MIXINGLAYER_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_MIXINGLAYER_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_MIXINGLAYER_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_MIXINGLAYER_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_MIXINGLAYER_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_MIXINGLAYER_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MIXINGLAYER_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXINGLAYER_INIT -!> @see G2S4_MIXINGLAYER_ALLOC -!> @see G2S4_MIXINGLAYER_PRESET -!> @see G2S4_MIXINGLAYER_RT -!> @see G2S4_MIXINGLAYER_TBE -!> @see G2S4_MIXINGLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXINGLAYER_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_MIXINGLAYER_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXINGLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'MIXINGLAYER' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXINGLAYER_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MIXINGLAYER_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXINGLAYER_ALLOC -!> @see G2S4_MIXINGLAYER_INIT -!> @see G2S4_MIXINGLAYER_PRESET -!> @see G2S4_MIXINGLAYER_RT -!> @see G2S4_MIXINGLAYER_TBE -!> @see G2S4_MIXINGLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXINGLAYER_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_MIXINGLAYER_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXINGLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: mixingLayer' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXINGLAYER_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MIXINGLAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXINGLAYER_PRESET -!> @see G2S4_MIXINGLAYER_ALLOC -!> @see G2S4_MIXINGLAYER_INIT -!> @see G2S4_MIXINGLAYER_RT -!> @see G2S4_MIXINGLAYER_TBE -!> @see G2S4_MIXINGLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXINGLAYER_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_MIXINGLAYER_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXINGLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: mixingLayer' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXINGLAYER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MIXINGLAYER_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXINGLAYER_RT -!> @see G2S4_MIXINGLAYER_ALLOC -!> @see G2S4_MIXINGLAYER_INIT -!> @see G2S4_MIXINGLAYER_PRESET -!> @see G2S4_MIXINGLAYER_TBE -!> @see G2S4_MIXINGLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXINGLAYER_RT' -PP_THREAD_SAFE FUNCTION G2S4_MIXINGLAYER_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXINGLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: mixingLayer' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXINGLAYER_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MIXINGLAYER_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXINGLAYER_INIT -!> @see G2S4_MIXINGLAYER_ALLOC -!> @see G2S4_MIXINGLAYER_PRESET -!> @see G2S4_MIXINGLAYER_RT -!> @see G2S4_MIXINGLAYER_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXINGLAYER_FREE' -PP_THREAD_SAFE FUNCTION G2S4_MIXINGLAYER_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXINGLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXINGLAYER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MIXINGLAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MIXINGLAYER_PRESET -!> @see G2S4_MIXINGLAYER_ALLOC -!> @see G2S4_MIXINGLAYER_INIT -!> @see G2S4_MIXINGLAYER_RT -!> @see G2S4_MIXINGLAYER_TBE -!> @see G2S4_MIXINGLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXINGLAYER_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_MIXINGLAYER_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXINGLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: mixingLayer' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'mixingLayer', & -!& 166_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXINGLAYER_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MIXINGLAYER_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_MIXINGLAYER_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MIXINGLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: mixingLayer' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MIXINGLAYER_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_MIXINGLAYER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mostunstableparcel_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mostunstableparcel_mod.F90 deleted file mode 100644 index 0d21d9371..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_mostunstableparcel_mod.F90 +++ /dev/null @@ -1,1218 +0,0 @@ -!> -!> @file grib2_section4_mostunstableparcel_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_MOSTUNSTABLEPARCEL_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_MOSTUNSTABLEPARCEL_INIT -!> - @see G2S4_MOSTUNSTABLEPARCEL_ALLOC -!> - @see G2S4_MOSTUNSTABLEPARCEL_PRESET -!> - @see G2S4_MOSTUNSTABLEPARCEL_RT -!> - @see G2S4_MOSTUNSTABLEPARCEL_TBE -!> - @see G2S4_MOSTUNSTABLEPARCEL_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_mostunstableparcel_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_MOSTUNSTABLEPARCEL_MOD' -MODULE GRIB2_SECTION4_MOSTUNSTABLEPARCEL_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'mostUnstableParcel' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 17_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_MOSTUNSTABLEPARCEL_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_MOSTUNSTABLEPARCEL_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_MOSTUNSTABLEPARCEL_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_MOSTUNSTABLEPARCEL_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_MOSTUNSTABLEPARCEL_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_MOSTUNSTABLEPARCEL_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_MOSTUNSTABLEPARCEL_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MOSTUNSTABLEPARCEL_INIT -!> @see G2S4_MOSTUNSTABLEPARCEL_ALLOC -!> @see G2S4_MOSTUNSTABLEPARCEL_PRESET -!> @see G2S4_MOSTUNSTABLEPARCEL_RT -!> @see G2S4_MOSTUNSTABLEPARCEL_TBE -!> @see G2S4_MOSTUNSTABLEPARCEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MOSTUNSTABLEPARCEL_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_MOSTUNSTABLEPARCEL_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'MOSTUNSTABLEPARCEL' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MOSTUNSTABLEPARCEL_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MOSTUNSTABLEPARCEL_ALLOC -!> @see G2S4_MOSTUNSTABLEPARCEL_INIT -!> @see G2S4_MOSTUNSTABLEPARCEL_PRESET -!> @see G2S4_MOSTUNSTABLEPARCEL_RT -!> @see G2S4_MOSTUNSTABLEPARCEL_TBE -!> @see G2S4_MOSTUNSTABLEPARCEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MOSTUNSTABLEPARCEL_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_MOSTUNSTABLEPARCEL_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: mostUnstableParcel' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MOSTUNSTABLEPARCEL_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MOSTUNSTABLEPARCEL_PRESET -!> @see G2S4_MOSTUNSTABLEPARCEL_ALLOC -!> @see G2S4_MOSTUNSTABLEPARCEL_INIT -!> @see G2S4_MOSTUNSTABLEPARCEL_RT -!> @see G2S4_MOSTUNSTABLEPARCEL_TBE -!> @see G2S4_MOSTUNSTABLEPARCEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MOSTUNSTABLEPARCEL_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_MOSTUNSTABLEPARCEL_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: mostUnstableParcel' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MOSTUNSTABLEPARCEL_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MOSTUNSTABLEPARCEL_RT -!> @see G2S4_MOSTUNSTABLEPARCEL_ALLOC -!> @see G2S4_MOSTUNSTABLEPARCEL_INIT -!> @see G2S4_MOSTUNSTABLEPARCEL_PRESET -!> @see G2S4_MOSTUNSTABLEPARCEL_TBE -!> @see G2S4_MOSTUNSTABLEPARCEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MOSTUNSTABLEPARCEL_RT' -PP_THREAD_SAFE FUNCTION G2S4_MOSTUNSTABLEPARCEL_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: mostUnstableParcel' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MOSTUNSTABLEPARCEL_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MOSTUNSTABLEPARCEL_INIT -!> @see G2S4_MOSTUNSTABLEPARCEL_ALLOC -!> @see G2S4_MOSTUNSTABLEPARCEL_PRESET -!> @see G2S4_MOSTUNSTABLEPARCEL_RT -!> @see G2S4_MOSTUNSTABLEPARCEL_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MOSTUNSTABLEPARCEL_FREE' -PP_THREAD_SAFE FUNCTION G2S4_MOSTUNSTABLEPARCEL_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MOSTUNSTABLEPARCEL_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_MOSTUNSTABLEPARCEL_PRESET -!> @see G2S4_MOSTUNSTABLEPARCEL_ALLOC -!> @see G2S4_MOSTUNSTABLEPARCEL_INIT -!> @see G2S4_MOSTUNSTABLEPARCEL_RT -!> @see G2S4_MOSTUNSTABLEPARCEL_TBE -!> @see G2S4_MOSTUNSTABLEPARCEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MOSTUNSTABLEPARCEL_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_MOSTUNSTABLEPARCEL_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: mostUnstableParcel' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'mostUnstableParcel', & -!& 17_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MOSTUNSTABLEPARCEL_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_MOSTUNSTABLEPARCEL_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_MOSTUNSTABLEPARCEL_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MOSTUNSTABLEPARCEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: mostUnstableParcel' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_MOSTUNSTABLEPARCEL_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_MOSTUNSTABLEPARCEL_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_nominaltop_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_nominaltop_mod.F90 deleted file mode 100644 index a403bd4b9..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_nominaltop_mod.F90 +++ /dev/null @@ -1,1219 +0,0 @@ -!> -!> @file grib2_section4_nominaltop_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_NOMINALTOP_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_NOMINALTOP_INIT -!> - @see G2S4_NOMINALTOP_ALLOC -!> - @see G2S4_NOMINALTOP_PRESET -!> - @see G2S4_NOMINALTOP_RT -!> - @see G2S4_NOMINALTOP_TBE -!> - @see G2S4_NOMINALTOP_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_nominaltop_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_NOMINALTOP_MOD' -MODULE GRIB2_SECTION4_NOMINALTOP_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'nominalTop' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 8_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_NOMINALTOP_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_NOMINALTOP_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_NOMINALTOP_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_NOMINALTOP_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_NOMINALTOP_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_NOMINALTOP_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_NOMINALTOP_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_NOMINALTOP_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_NOMINALTOP_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_NOMINALTOP_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_NOMINALTOP_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_NOMINALTOP_INIT -!> @see G2S4_NOMINALTOP_ALLOC -!> @see G2S4_NOMINALTOP_PRESET -!> @see G2S4_NOMINALTOP_RT -!> @see G2S4_NOMINALTOP_TBE -!> @see G2S4_NOMINALTOP_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_NOMINALTOP_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_NOMINALTOP_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_NOMINALTOP_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'NOMINALTOP' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_NOMINALTOP_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_NOMINALTOP_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_NOMINALTOP_ALLOC -!> @see G2S4_NOMINALTOP_INIT -!> @see G2S4_NOMINALTOP_PRESET -!> @see G2S4_NOMINALTOP_RT -!> @see G2S4_NOMINALTOP_TBE -!> @see G2S4_NOMINALTOP_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_NOMINALTOP_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_NOMINALTOP_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_NOMINALTOP_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: nominalTop' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_NOMINALTOP_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_NOMINALTOP_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_NOMINALTOP_PRESET -!> @see G2S4_NOMINALTOP_ALLOC -!> @see G2S4_NOMINALTOP_INIT -!> @see G2S4_NOMINALTOP_RT -!> @see G2S4_NOMINALTOP_TBE -!> @see G2S4_NOMINALTOP_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_NOMINALTOP_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_NOMINALTOP_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_NOMINALTOP_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: nominalTop' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_NOMINALTOP_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_NOMINALTOP_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_NOMINALTOP_RT -!> @see G2S4_NOMINALTOP_ALLOC -!> @see G2S4_NOMINALTOP_INIT -!> @see G2S4_NOMINALTOP_PRESET -!> @see G2S4_NOMINALTOP_TBE -!> @see G2S4_NOMINALTOP_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_NOMINALTOP_RT' -PP_THREAD_SAFE FUNCTION G2S4_NOMINALTOP_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_NOMINALTOP_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: nominalTop' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_NOMINALTOP_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_NOMINALTOP_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_NOMINALTOP_INIT -!> @see G2S4_NOMINALTOP_ALLOC -!> @see G2S4_NOMINALTOP_PRESET -!> @see G2S4_NOMINALTOP_RT -!> @see G2S4_NOMINALTOP_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_NOMINALTOP_FREE' -PP_THREAD_SAFE FUNCTION G2S4_NOMINALTOP_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_NOMINALTOP_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_NOMINALTOP_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_NOMINALTOP_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_NOMINALTOP_PRESET -!> @see G2S4_NOMINALTOP_ALLOC -!> @see G2S4_NOMINALTOP_INIT -!> @see G2S4_NOMINALTOP_RT -!> @see G2S4_NOMINALTOP_TBE -!> @see G2S4_NOMINALTOP_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_NOMINALTOP_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_NOMINALTOP_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_NOMINALTOP_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: nominalTop' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'nominalTop', & -!& 8_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_NOMINALTOP_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_NOMINALTOP_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_NOMINALTOP_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_NOMINALTOP_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: nominalTop' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_NOMINALTOP_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_NOMINALTOP_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_potentialvorticity_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_potentialvorticity_mod.F90 deleted file mode 100644 index 0017313ed..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_potentialvorticity_mod.F90 +++ /dev/null @@ -1,1189 +0,0 @@ -!> -!> @file grib2_section4_potentialvorticity_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_POTENTIALVORTICITY_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_POTENTIALVORTICITY_INIT -!> - @see G2S4_POTENTIALVORTICITY_ALLOC -!> - @see G2S4_POTENTIALVORTICITY_PRESET -!> - @see G2S4_POTENTIALVORTICITY_RT -!> - @see G2S4_POTENTIALVORTICITY_TBE -!> - @see G2S4_POTENTIALVORTICITY_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_potentialvorticity_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_POTENTIALVORTICITY_MOD' -MODULE GRIB2_SECTION4_POTENTIALVORTICITY_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'potentialVorticity' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 109_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_POTENTIALVORTICITY_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_POTENTIALVORTICITY_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_POTENTIALVORTICITY_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_POTENTIALVORTICITY_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_POTENTIALVORTICITY_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_POTENTIALVORTICITY_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_POTENTIALVORTICITY_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_POTENTIALVORTICITY_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_POTENTIALVORTICITY_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_POTENTIALVORTICITY_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_POTENTIALVORTICITY_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_POTENTIALVORTICITY_INIT -!> @see G2S4_POTENTIALVORTICITY_ALLOC -!> @see G2S4_POTENTIALVORTICITY_PRESET -!> @see G2S4_POTENTIALVORTICITY_RT -!> @see G2S4_POTENTIALVORTICITY_TBE -!> @see G2S4_POTENTIALVORTICITY_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POTENTIALVORTICITY_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_POTENTIALVORTICITY_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POTENTIALVORTICITY_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'POTENTIALVORTICITY' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POTENTIALVORTICITY_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_POTENTIALVORTICITY_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_POTENTIALVORTICITY_ALLOC -!> @see G2S4_POTENTIALVORTICITY_INIT -!> @see G2S4_POTENTIALVORTICITY_PRESET -!> @see G2S4_POTENTIALVORTICITY_RT -!> @see G2S4_POTENTIALVORTICITY_TBE -!> @see G2S4_POTENTIALVORTICITY_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POTENTIALVORTICITY_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_POTENTIALVORTICITY_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POTENTIALVORTICITY_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: potentialVorticity' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POTENTIALVORTICITY_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_POTENTIALVORTICITY_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_POTENTIALVORTICITY_PRESET -!> @see G2S4_POTENTIALVORTICITY_ALLOC -!> @see G2S4_POTENTIALVORTICITY_INIT -!> @see G2S4_POTENTIALVORTICITY_RT -!> @see G2S4_POTENTIALVORTICITY_TBE -!> @see G2S4_POTENTIALVORTICITY_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POTENTIALVORTICITY_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_POTENTIALVORTICITY_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POTENTIALVORTICITY_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: potentialVorticity' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POTENTIALVORTICITY_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_POTENTIALVORTICITY_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_POTENTIALVORTICITY_RT -!> @see G2S4_POTENTIALVORTICITY_ALLOC -!> @see G2S4_POTENTIALVORTICITY_INIT -!> @see G2S4_POTENTIALVORTICITY_PRESET -!> @see G2S4_POTENTIALVORTICITY_TBE -!> @see G2S4_POTENTIALVORTICITY_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POTENTIALVORTICITY_RT' -PP_THREAD_SAFE FUNCTION G2S4_POTENTIALVORTICITY_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POTENTIALVORTICITY_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: potentialVorticity' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POTENTIALVORTICITY_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_POTENTIALVORTICITY_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_POTENTIALVORTICITY_INIT -!> @see G2S4_POTENTIALVORTICITY_ALLOC -!> @see G2S4_POTENTIALVORTICITY_PRESET -!> @see G2S4_POTENTIALVORTICITY_RT -!> @see G2S4_POTENTIALVORTICITY_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POTENTIALVORTICITY_FREE' -PP_THREAD_SAFE FUNCTION G2S4_POTENTIALVORTICITY_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POTENTIALVORTICITY_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POTENTIALVORTICITY_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POTENTIALVORTICITY_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_POTENTIALVORTICITY_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POTENTIALVORTICITY_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: potentialVorticity' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', MSG%LEVELIST ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', MSG%LEVELIST ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'potentialVorticity', & -!& 109_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POTENTIALVORTICITY_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POTENTIALVORTICITY_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_POTENTIALVORTICITY_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POTENTIALVORTICITY_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: potentialVorticity' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -& LEVEL = MSG%LEVELIST ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POTENTIALVORTICITY_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_POTENTIALVORTICITY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_seaicelayer_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_seaicelayer_mod.F90 deleted file mode 100644 index 5073426ab..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_seaicelayer_mod.F90 +++ /dev/null @@ -1,1209 +0,0 @@ -!> -!> @file grib2_section4_seaicelayer_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_SEAICELAYER_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_SEAICELAYER_INIT -!> - @see G2S4_SEAICELAYER_ALLOC -!> - @see G2S4_SEAICELAYER_PRESET -!> - @see G2S4_SEAICELAYER_RT -!> - @see G2S4_SEAICELAYER_TBE -!> - @see G2S4_SEAICELAYER_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_seaicelayer_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_SEAICELAYER_MOD' -MODULE GRIB2_SECTION4_SEAICELAYER_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'seaIceLayer' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 152_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 152_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_SEAICELAYER_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_SEAICELAYER_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_SEAICELAYER_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_SEAICELAYER_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_SEAICELAYER_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_SEAICELAYER_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_SEAICELAYER_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_SEAICELAYER_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_SEAICELAYER_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_SEAICELAYER_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SEAICELAYER_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SEAICELAYER_INIT -!> @see G2S4_SEAICELAYER_ALLOC -!> @see G2S4_SEAICELAYER_PRESET -!> @see G2S4_SEAICELAYER_RT -!> @see G2S4_SEAICELAYER_TBE -!> @see G2S4_SEAICELAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SEAICELAYER_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_SEAICELAYER_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SEAICELAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'SEAICELAYER' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SEAICELAYER_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SEAICELAYER_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SEAICELAYER_ALLOC -!> @see G2S4_SEAICELAYER_INIT -!> @see G2S4_SEAICELAYER_PRESET -!> @see G2S4_SEAICELAYER_RT -!> @see G2S4_SEAICELAYER_TBE -!> @see G2S4_SEAICELAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SEAICELAYER_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_SEAICELAYER_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SEAICELAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: seaIceLayer' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SEAICELAYER_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SEAICELAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SEAICELAYER_PRESET -!> @see G2S4_SEAICELAYER_ALLOC -!> @see G2S4_SEAICELAYER_INIT -!> @see G2S4_SEAICELAYER_RT -!> @see G2S4_SEAICELAYER_TBE -!> @see G2S4_SEAICELAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SEAICELAYER_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_SEAICELAYER_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SEAICELAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: seaIceLayer' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SEAICELAYER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SEAICELAYER_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SEAICELAYER_RT -!> @see G2S4_SEAICELAYER_ALLOC -!> @see G2S4_SEAICELAYER_INIT -!> @see G2S4_SEAICELAYER_PRESET -!> @see G2S4_SEAICELAYER_TBE -!> @see G2S4_SEAICELAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SEAICELAYER_RT' -PP_THREAD_SAFE FUNCTION G2S4_SEAICELAYER_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SEAICELAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LEVEL - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: seaIceLayer' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SEAICELAYER_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SEAICELAYER_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SEAICELAYER_INIT -!> @see G2S4_SEAICELAYER_ALLOC -!> @see G2S4_SEAICELAYER_PRESET -!> @see G2S4_SEAICELAYER_RT -!> @see G2S4_SEAICELAYER_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SEAICELAYER_FREE' -PP_THREAD_SAFE FUNCTION G2S4_SEAICELAYER_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SEAICELAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SEAICELAYER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SEAICELAYER_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_SEAICELAYER_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SEAICELAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LEVEL - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: seaIceLayer' ) - IF ( OPT%USE_TYPE_OF_LEVEL .AND. .FALSE. ) THEN - LEVEL = MSG%LEVELIST - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', LEVEL ) - ELSE - SCALED_VALUES_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST - 1_JPIB_K - SCALED_VALUES_OF_SECOND_FIXED_SURFACES = MSG%LEVELIST - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', SCALED_VALUES_OF_FIRST_FIXED_SURFACES ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface', SCALED_VALUES_OF_SECOND_FIXED_SURFACES ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface', 0_JPIB_K) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'seaIceLayer', & -!& 152_JPIB_K, & -!& 152_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST-1_JPIB_K, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -!& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = 0_JPIB_K, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SEAICELAYER_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SEAICELAYER_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_SEAICELAYER_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SEAICELAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LEVEL - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: seaIceLayer' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST-1_JPIB_K, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = 0_JPIB_K, & -& LEVEL = MSG%LEVELIST ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SEAICELAYER_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_SEAICELAYER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_snowlayer_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_snowlayer_mod.F90 deleted file mode 100644 index 60fb9de9d..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_snowlayer_mod.F90 +++ /dev/null @@ -1,1211 +0,0 @@ -!> -!> @file grib2_section4_snowlayer_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_SNOWLAYER_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_SNOWLAYER_INIT -!> - @see G2S4_SNOWLAYER_ALLOC -!> - @see G2S4_SNOWLAYER_PRESET -!> - @see G2S4_SNOWLAYER_RT -!> - @see G2S4_SNOWLAYER_TBE -!> - @see G2S4_SNOWLAYER_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_snowlayer_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_SNOWLAYER_MOD' -MODULE GRIB2_SECTION4_SNOWLAYER_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'snowLayer' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 114_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 114_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_SNOWLAYER_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_SNOWLAYER_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_SNOWLAYER_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_SNOWLAYER_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_SNOWLAYER_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_SNOWLAYER_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_SNOWLAYER_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_SNOWLAYER_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_SNOWLAYER_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_SNOWLAYER_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SNOWLAYER_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SNOWLAYER_INIT -!> @see G2S4_SNOWLAYER_ALLOC -!> @see G2S4_SNOWLAYER_PRESET -!> @see G2S4_SNOWLAYER_RT -!> @see G2S4_SNOWLAYER_TBE -!> @see G2S4_SNOWLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SNOWLAYER_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_SNOWLAYER_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SNOWLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'SNOWLAYER' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SNOWLAYER_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SNOWLAYER_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SNOWLAYER_ALLOC -!> @see G2S4_SNOWLAYER_INIT -!> @see G2S4_SNOWLAYER_PRESET -!> @see G2S4_SNOWLAYER_RT -!> @see G2S4_SNOWLAYER_TBE -!> @see G2S4_SNOWLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SNOWLAYER_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_SNOWLAYER_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SNOWLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: snowLayer' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SNOWLAYER_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SNOWLAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SNOWLAYER_PRESET -!> @see G2S4_SNOWLAYER_ALLOC -!> @see G2S4_SNOWLAYER_INIT -!> @see G2S4_SNOWLAYER_RT -!> @see G2S4_SNOWLAYER_TBE -!> @see G2S4_SNOWLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SNOWLAYER_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_SNOWLAYER_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SNOWLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: snowLayer' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SNOWLAYER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SNOWLAYER_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SNOWLAYER_RT -!> @see G2S4_SNOWLAYER_ALLOC -!> @see G2S4_SNOWLAYER_INIT -!> @see G2S4_SNOWLAYER_PRESET -!> @see G2S4_SNOWLAYER_TBE -!> @see G2S4_SNOWLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SNOWLAYER_RT' -PP_THREAD_SAFE FUNCTION G2S4_SNOWLAYER_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SNOWLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LEVEL - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: snowLayer' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SNOWLAYER_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SNOWLAYER_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SNOWLAYER_INIT -!> @see G2S4_SNOWLAYER_ALLOC -!> @see G2S4_SNOWLAYER_PRESET -!> @see G2S4_SNOWLAYER_RT -!> @see G2S4_SNOWLAYER_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SNOWLAYER_FREE' -PP_THREAD_SAFE FUNCTION G2S4_SNOWLAYER_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SNOWLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SNOWLAYER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SNOWLAYER_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_SNOWLAYER_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SNOWLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LEVEL - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: snowLayer' ) - IF ( OPT%USE_TYPE_OF_LEVEL .AND. .FALSE. ) THEN - LEVEL = MSG%LEVELIST - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', LEVEL ) - ELSE - SCALED_VALUES_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST - 1_JPIB_K - SCALED_VALUES_OF_SECOND_FIXED_SURFACES = MSG%LEVELIST - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', SCALED_VALUES_OF_FIRST_FIXED_SURFACES ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface', SCALED_VALUES_OF_SECOND_FIXED_SURFACES ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface', 0_JPIB_K) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'snowLayer', & -!& 114_JPIB_K, & -!& 114_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST - 1_JPIB_K, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -!& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = 0_JPIB_K, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SNOWLAYER_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SNOWLAYER_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_SNOWLAYER_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SNOWLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LEVEL - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: snowLayer' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST - 1_JPIB_K, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = 0_JPIB_K, & -& LEVEL = MSG%LEVELIST ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SNOWLAYER_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_SNOWLAYER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_soillayer_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_soillayer_mod.F90 deleted file mode 100644 index bf3bd106f..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_soillayer_mod.F90 +++ /dev/null @@ -1,1210 +0,0 @@ -!> -!> @file grib2_section4_soillayer_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_SOILLAYER_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_SOILLAYER_INIT -!> - @see G2S4_SOILLAYER_ALLOC -!> - @see G2S4_SOILLAYER_PRESET -!> - @see G2S4_SOILLAYER_RT -!> - @see G2S4_SOILLAYER_TBE -!> - @see G2S4_SOILLAYER_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_soillayer_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_SOILLAYER_MOD' -MODULE GRIB2_SECTION4_SOILLAYER_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'soilLayer' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 151_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 151_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_SOILLAYER_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_SOILLAYER_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_SOILLAYER_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_SOILLAYER_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_SOILLAYER_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_SOILLAYER_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_SOILLAYER_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_SOILLAYER_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_SOILLAYER_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_SOILLAYER_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SOILLAYER_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SOILLAYER_INIT -!> @see G2S4_SOILLAYER_ALLOC -!> @see G2S4_SOILLAYER_PRESET -!> @see G2S4_SOILLAYER_RT -!> @see G2S4_SOILLAYER_TBE -!> @see G2S4_SOILLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SOILLAYER_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_SOILLAYER_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SOILLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'SOILLAYER' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SOILLAYER_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SOILLAYER_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SOILLAYER_ALLOC -!> @see G2S4_SOILLAYER_INIT -!> @see G2S4_SOILLAYER_PRESET -!> @see G2S4_SOILLAYER_RT -!> @see G2S4_SOILLAYER_TBE -!> @see G2S4_SOILLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SOILLAYER_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_SOILLAYER_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SOILLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: soilLayer' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SOILLAYER_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SOILLAYER_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SOILLAYER_PRESET -!> @see G2S4_SOILLAYER_ALLOC -!> @see G2S4_SOILLAYER_INIT -!> @see G2S4_SOILLAYER_RT -!> @see G2S4_SOILLAYER_TBE -!> @see G2S4_SOILLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SOILLAYER_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_SOILLAYER_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SOILLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: soilLayer' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SOILLAYER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SOILLAYER_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SOILLAYER_RT -!> @see G2S4_SOILLAYER_ALLOC -!> @see G2S4_SOILLAYER_INIT -!> @see G2S4_SOILLAYER_PRESET -!> @see G2S4_SOILLAYER_TBE -!> @see G2S4_SOILLAYER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SOILLAYER_RT' -PP_THREAD_SAFE FUNCTION G2S4_SOILLAYER_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SOILLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LEVEL - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: soilLayer' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SOILLAYER_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SOILLAYER_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SOILLAYER_INIT -!> @see G2S4_SOILLAYER_ALLOC -!> @see G2S4_SOILLAYER_PRESET -!> @see G2S4_SOILLAYER_RT -!> @see G2S4_SOILLAYER_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SOILLAYER_FREE' -PP_THREAD_SAFE FUNCTION G2S4_SOILLAYER_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SOILLAYER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SOILLAYER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SOILLAYER_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_SOILLAYER_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SOILLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LEVEL - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: soilLayer' ) - IF ( OPT%USE_TYPE_OF_LEVEL .AND. .FALSE. ) THEN - LEVEL = MSG%LEVELIST - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', LEVEL ) - ELSE - SCALED_VALUES_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST - 1_JPIB_K - SCALED_VALUES_OF_SECOND_FIXED_SURFACES = MSG%LEVELIST - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', SCALED_VALUES_OF_FIRST_FIXED_SURFACES ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface', SCALED_VALUES_OF_SECOND_FIXED_SURFACES ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface', 0_JPIB_K) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'soilLayer', & -!& 151_JPIB_K, & -!& 151_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST - 1_JPIB_K, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -!& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = 0_JPIB_K, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SOILLAYER_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SOILLAYER_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_SOILLAYER_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SOILLAYER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: SCALED_VALUES_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LEVEL - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: soilLayer' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST - 1_JPIB_K, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = 0_JPIB_K, & -& LEVEL = MSG%LEVELIST ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SOILLAYER_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_SOILLAYER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_surface_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_surface_mod.F90 deleted file mode 100644 index f99d5dfdf..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_surface_mod.F90 +++ /dev/null @@ -1,1183 +0,0 @@ -!> -!> @file grib2_section4_surface_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_SURFACE_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_SURFACE_INIT -!> - @see G2S4_SURFACE_ALLOC -!> - @see G2S4_SURFACE_PRESET -!> - @see G2S4_SURFACE_RT -!> - @see G2S4_SURFACE_TBE -!> - @see G2S4_SURFACE_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_surface_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_SURFACE_MOD' -MODULE GRIB2_SECTION4_SURFACE_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'surface' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 1_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_SURFACE_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_SURFACE_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_SURFACE_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_SURFACE_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_SURFACE_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_SURFACE_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_SURFACE_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_SURFACE_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_SURFACE_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_SURFACE_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SURFACE_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SURFACE_INIT -!> @see G2S4_SURFACE_ALLOC -!> @see G2S4_SURFACE_PRESET -!> @see G2S4_SURFACE_RT -!> @see G2S4_SURFACE_TBE -!> @see G2S4_SURFACE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SURFACE_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_SURFACE_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SURFACE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'SURFACE' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SURFACE_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SURFACE_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SURFACE_ALLOC -!> @see G2S4_SURFACE_INIT -!> @see G2S4_SURFACE_PRESET -!> @see G2S4_SURFACE_RT -!> @see G2S4_SURFACE_TBE -!> @see G2S4_SURFACE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SURFACE_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_SURFACE_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SURFACE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: surface' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SURFACE_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SURFACE_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SURFACE_PRESET -!> @see G2S4_SURFACE_ALLOC -!> @see G2S4_SURFACE_INIT -!> @see G2S4_SURFACE_RT -!> @see G2S4_SURFACE_TBE -!> @see G2S4_SURFACE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SURFACE_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_SURFACE_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SURFACE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: surface' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SURFACE_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SURFACE_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SURFACE_RT -!> @see G2S4_SURFACE_ALLOC -!> @see G2S4_SURFACE_INIT -!> @see G2S4_SURFACE_PRESET -!> @see G2S4_SURFACE_TBE -!> @see G2S4_SURFACE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SURFACE_RT' -PP_THREAD_SAFE FUNCTION G2S4_SURFACE_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SURFACE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: surface' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SURFACE_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SURFACE_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_SURFACE_INIT -!> @see G2S4_SURFACE_ALLOC -!> @see G2S4_SURFACE_PRESET -!> @see G2S4_SURFACE_RT -!> @see G2S4_SURFACE_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SURFACE_FREE' -PP_THREAD_SAFE FUNCTION G2S4_SURFACE_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SURFACE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SURFACE_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SURFACE_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_SURFACE_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SURFACE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: surface' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'surface', & -!& 255_JPIB_K, & -!& 114_JPIB_K, & -!& HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SURFACE_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_SURFACE_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_SURFACE_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SURFACE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: surface' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_SURFACE_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_SURFACE_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_theta_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_theta_mod.F90 deleted file mode 100644 index 46aa9e4a7..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_theta_mod.F90 +++ /dev/null @@ -1,1193 +0,0 @@ -!> -!> @file grib2_section4_theta_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_THETA_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_THETA_INIT -!> - @see G2S4_THETA_ALLOC -!> - @see G2S4_THETA_PRESET -!> - @see G2S4_THETA_RT -!> - @see G2S4_THETA_TBE -!> - @see G2S4_THETA_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_theta_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_THETA_MOD' -MODULE GRIB2_SECTION4_THETA_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'theta' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 107_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_THETA_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_THETA_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_THETA_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_THETA_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_THETA_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_THETA_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_THETA_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_THETA_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_THETA_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_THETA_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_THETA_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_THETA_INIT -!> @see G2S4_THETA_ALLOC -!> @see G2S4_THETA_PRESET -!> @see G2S4_THETA_RT -!> @see G2S4_THETA_TBE -!> @see G2S4_THETA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_THETA_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_THETA_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_THETA_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'THETA' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_THETA_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_THETA_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_THETA_ALLOC -!> @see G2S4_THETA_INIT -!> @see G2S4_THETA_PRESET -!> @see G2S4_THETA_RT -!> @see G2S4_THETA_TBE -!> @see G2S4_THETA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_THETA_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_THETA_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_THETA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: theta' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_THETA_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_THETA_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_THETA_PRESET -!> @see G2S4_THETA_ALLOC -!> @see G2S4_THETA_INIT -!> @see G2S4_THETA_RT -!> @see G2S4_THETA_TBE -!> @see G2S4_THETA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_THETA_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_THETA_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_THETA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: theta' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_THETA_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_THETA_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_THETA_RT -!> @see G2S4_THETA_ALLOC -!> @see G2S4_THETA_INIT -!> @see G2S4_THETA_PRESET -!> @see G2S4_THETA_TBE -!> @see G2S4_THETA_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_THETA_RT' -PP_THREAD_SAFE FUNCTION G2S4_THETA_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_THETA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: theta' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_THETA_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_THETA_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_THETA_INIT -!> @see G2S4_THETA_ALLOC -!> @see G2S4_THETA_PRESET -!> @see G2S4_THETA_RT -!> @see G2S4_THETA_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_THETA_FREE' -PP_THREAD_SAFE FUNCTION G2S4_THETA_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_THETA_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_THETA_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_THETA_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_THETA_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_THETA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: theta' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'level', MSG%LEVELIST ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', MSG%LEVELIST ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 0_JPIB_K ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'scaleFactorOfSecondFixedSurface' ) - ENDIF - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -!& METADATA, & -!& 'theta', & -!& 107_JPIB_K, & -!& 255_JPIB_K, & -!& HOOKS, & -!& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -!& SCALED_VALUE_OF_SECOND_FIXED_SURFACES = 0_JPIB_K, & -!& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES = 0_JPIB_K, & -!& LEVEL = MSG%LEVELIST ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_THETA_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_THETA_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_THETA_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_THETA_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: theta' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES = MSG%LEVELIST, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES = 0_JPIB_K, & -& LEVEL = MSG%LEVELIST ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_THETA_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_THETA_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_tropopause_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_tropopause_mod.F90 deleted file mode 100644 index 3d4652494..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/grib2_section4_tropopause_mod.F90 +++ /dev/null @@ -1,1216 +0,0 @@ -!> -!> @file grib2_section4_tropopause_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 level configuration operations. -!> -!> The `G2S4_TROPOPAUSE_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 level configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 level configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runlevel operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_TROPOPAUSE_INIT -!> - @see G2S4_TROPOPAUSE_ALLOC -!> - @see G2S4_TROPOPAUSE_PRESET -!> - @see G2S4_TROPOPAUSE_RT -!> - @see G2S4_TROPOPAUSE_TBE -!> - @see G2S4_TROPOPAUSE_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_tropopause_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_TROPOPAUSE_MOD' -MODULE GRIB2_SECTION4_TROPOPAUSE_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Definition of the typeOfLevel -CHARACTER(LEN=*), PARAMETER :: TYPE_OF_LEVEL = 'tropopause' -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_FIRST_FIXED_SURFACE = 7_JPIB_K -INTEGER(KIND=JPIB_K), PARAMETER :: TYPE_OF_SECOND_FIXED_SURFACE = 255_JPIB_K - -!> -!> @brief Type definition for GRIB2 Section 4 level configuration handler. -!> -!> The `GRIB2_SECTION4_TROPOPAUSE_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runlevel, -!> encoding checks, and cleanup operations for GRIB2 Section 4 level configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_TROPOPAUSE_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 level configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_TROPOPAUSE_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 level configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_TROPOPAUSE_ALLOC - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 level configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runlevel execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_TROPOPAUSE_PRESET - - !> - !> @brief Manages the runlevel execution of GRIB2 Section 4 level configuration operations. - !> - !> This procedure handles operations and computations during runlevel, - !> making use of level and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_TROPOPAUSE_RT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 level configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_TROPOPAUSE_FREE - - !> - !> @brief Set Levels for this object - !> - !> This procedure set in the grib header all the variables needed to configure a specific level - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: SET_LEVELS => G2S4_TROPOPAUSE_SET_LEVELS - - !> - !> @brief Check metadatafor this object - !> - !> This procedure scheck the level metadata in the grib header - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: CHECK => G2S4_TROPOPAUSE_CHECK - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_TROPOPAUSE_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 level configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_TROPOPAUSE_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_TROPOPAUSE_INIT -!> @see G2S4_TROPOPAUSE_ALLOC -!> @see G2S4_TROPOPAUSE_PRESET -!> @see G2S4_TROPOPAUSE_RT -!> @see G2S4_TROPOPAUSE_TBE -!> @see G2S4_TROPOPAUSE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_TROPOPAUSE_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_TROPOPAUSE_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_TROPOPAUSE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'LEVEL' - THIS%KIND_ = 'TROPOPAUSE' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_TROPOPAUSE_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 level configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_TROPOPAUSE_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_TROPOPAUSE_ALLOC -!> @see G2S4_TROPOPAUSE_INIT -!> @see G2S4_TROPOPAUSE_PRESET -!> @see G2S4_TROPOPAUSE_RT -!> @see G2S4_TROPOPAUSE_TBE -!> @see G2S4_TROPOPAUSE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_TROPOPAUSE_ALLOC' -PP_THREAD_SAFE FUNCTION G2S4_TROPOPAUSE_ALLOC( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: BAD_INIT_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_TROPOPAUSE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_BAD_INIT=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Allocate: tropopause' ) - - ! Initialize the levels - IF ( OPT%BAD_INIT_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_BAD_INIT) BAD_INIT_LEVELS( METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE (ERRFLAG_BAD_INIT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_TROPOPAUSE_ALLOC -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_TROPOPAUSE_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_TROPOPAUSE_PRESET -!> @see G2S4_TROPOPAUSE_ALLOC -!> @see G2S4_TROPOPAUSE_INIT -!> @see G2S4_TROPOPAUSE_RT -!> @see G2S4_TROPOPAUSE_TBE -!> @see G2S4_TROPOPAUSE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_TROPOPAUSE_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_TROPOPAUSE_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_TROPOPAUSE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Preset: tropopause' ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_TROPOPAUSE_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runlevel processing for GRIB2 Section 4 level configuration using provided parameters, message data, and time history. -!> -!> This function performs runlevel operations for a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current level (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runlevel operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_TROPOPAUSE_T` representing the GRIB section for runlevel execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical level data. -!> @param [in] CURR_TIME The current level object of type `CURR_TIME_T` for the runlevel phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runlevel. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runlevel operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_TROPOPAUSE_RT -!> @see G2S4_TROPOPAUSE_ALLOC -!> @see G2S4_TROPOPAUSE_INIT -!> @see G2S4_TROPOPAUSE_PRESET -!> @see G2S4_TROPOPAUSE_TBE -!> @see G2S4_TROPOPAUSE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_TROPOPAUSE_RT' -PP_THREAD_SAFE FUNCTION G2S4_TROPOPAUSE_RT( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_TROPOPAUSE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_RT=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging - PP_LOG_DEVELOP_STR( 'Runtime: tropopause' ) - - ! Check if level has been overriden - IF ( OPT%CHECK_TYPE_OF_LEVEL_RT ) THEN - PP_TRYCALL(ERRFLAG_CHECK_RT) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! According to the options decide where to set the levels (preset or runlevel) - PP_TRYCALL(ERRFLAG_SETLEVELS) THIS%SET_LEVELS( MSG, PAR, OPT, METADATA, HOOKS ); - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_CHECK_RT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking runtime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_TROPOPAUSE_RT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 level configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 level configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_TROPOPAUSE_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_TROPOPAUSE_INIT -!> @see G2S4_TROPOPAUSE_ALLOC -!> @see G2S4_TROPOPAUSE_PRESET -!> @see G2S4_TROPOPAUSE_RT -!> @see G2S4_TROPOPAUSE_TBE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_TROPOPAUSE_FREE' -PP_THREAD_SAFE FUNCTION G2S4_TROPOPAUSE_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_TROPOPAUSE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_TROPOPAUSE_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 level configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 level configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), to set the metadata (`METADATA`). -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_TROPOPAUSE_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_TROPOPAUSE_PRESET -!> @see G2S4_TROPOPAUSE_ALLOC -!> @see G2S4_TROPOPAUSE_INIT -!> @see G2S4_TROPOPAUSE_RT -!> @see G2S4_TROPOPAUSE_TBE -!> @see G2S4_TROPOPAUSE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_TROPOPAUSE_SET_LEVELS' -PP_THREAD_SAFE FUNCTION G2S4_TROPOPAUSE_SET_LEVELS( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_TROPOPAUSE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'TypeOfLevel: tropopause' ) - IF ( OPT%USE_TYPE_OF_LEVEL ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfLevel', TYPE_OF_LEVEL ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfFirstFixedSurface', TYPE_OF_FIRST_FIXED_SURFACE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TypeOfSecondFixedSurface', TYPE_OF_SECOND_FIXED_SURFACE ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfFirstFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaledValueOfSecondFixedSurface' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'ScaleFactorOfSecondFixedSurface' ) - ENDIF - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN -! PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -! & METADATA, & -! & 'tropopause', & -! & 7_JPIB_K, & -! & 255_JPIB_K, & -! & HOOKS ) - PP_TRYCALL(ERRFLAG_CHECK_FAILED) THIS%CHECK( MSG, PAR, OPT, METADATA, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_TROPOPAUSE_SET_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_TROPOPAUSE_CHECK' -PP_THREAD_SAFE FUNCTION G2S4_TROPOPAUSE_CHECK( THIS, & -& MSG, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: LEVELS_UTILS_MOD, ONLY: CHECK_LEVELS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_TROPOPAUSE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - INTEGER(KIND=JPIB_K) :: STAT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SETLEVELS=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHECK_FAILED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! According to the options decide where to set the levels (preset or runlevel) - PP_LOG_INFO( 'check typeOfLevel: tropopause' ) - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - - ! Check the levels - IF ( OPT%CHECK_TYPE_OF_LEVEL ) THEN - PP_TRYCALL(ERRFLAG_CHECK_FAILED) CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS ) - ENDIF - - ! Free json if checks passed - IF ( ALLOCATED(JSON) ) THEN - DEALLOCATE( JSON, STAT=STAT, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error with metadata' ) - CASE ( ERRFLAG_SETLEVELS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error setting levels' ) - CASE ( ERRFLAG_CHECK_FAILED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking levels' ) - IF ( ALLOCATED(JSON) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'mars: ' // TRIM(JSON) ) - DEALLOCATE( JSON, STAT=STAT ) - ENDIF - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate json' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ERRMSG) ) - DEALLOCATE( ERRMSG, STAT=STAT ) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_TROPOPAUSE_CHECK -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_TROPOPAUSE_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/levels_utils_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/levels_utils_mod.F90 deleted file mode 100644 index 653b29d3a..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-level-configurator/levels_utils_mod.F90 +++ /dev/null @@ -1,483 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'levels_utils_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'LEVELS_UTILS_MOD' -MODULE LEVELS_UTILS_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> Default visibility -PRIVATE - -!> Whitelist of public symbols -PUBLIC :: BAD_INIT_LEVELS -PUBLIC :: CHECK_LEVELS - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'BAD_INIT_LEVELS' -PP_THREAD_SAFE FUNCTION BAD_INIT_LEVELS( & -& METADATA, & -& HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Bad initialization of levels to check if it is fixed by the "typeOfLevel" setter - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfFirstFixedSurface', 237_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfSecondFixedSurface', 237_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfFirstFixedSurface', 237_JPIB_K) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfSecondFixedSurface', 237_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 237_JPIB_K) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfFirstFixedSurface', 237_JPIB_K ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to set metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION BAD_INIT_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CHECK_LEVELS' -PP_THREAD_SAFE FUNCTION CHECK_LEVELS( & -& METADATA, & -& TYPE_OF_LEVEL, & -& TYPE_OF_FIRST_FIXED_SURFACE, & -& TYPE_OF_SECOND_FIXED_SURFACE, & -& HOOKS, & -& SCALED_VALUE_OF_FIRST_FIXED_SURFACES, & -& SCALE_FACTOR_OF_FIRST_FIXED_SURFACES, & -& SCALED_VALUE_OF_SECOND_FIXED_SURFACES, & -& SCALE_FACTOR_OF_SECOND_FIXED_SURFACES, & -& LEVEL ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - - ! Symbols imported from external libraries - USE :: GRIB_API, ONLY: GRIB_GET - USE :: GRIB_API, ONLY: GRIB_IS_MISSING - USE :: GRIB_API, ONLY: GRIB_IS_DEFINED - USE :: GRIB_API, ONLY: GRIB_SUCCESS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - CHARACTER(LEN=*), INTENT(IN) :: TYPE_OF_LEVEL - INTEGER(KIND=JPIB_K), INTENT(IN) :: TYPE_OF_FIRST_FIXED_SURFACE - INTEGER(KIND=JPIB_K), INTENT(IN) :: TYPE_OF_SECOND_FIXED_SURFACE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(IN) :: SCALED_VALUE_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(IN) :: SCALE_FACTOR_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(IN) :: SCALED_VALUE_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(IN) :: SCALE_FACTOR_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(IN) :: LEVEL - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIM_K) :: HANDLE - INTEGER(KIND=JPIM_K), DIMENSION(8) :: KRET - - CHARACTER(LEN=128) :: LOC_TYPE_OF_LEVEL - INTEGER(KIND=JPIB_K) :: LOC_TYPE_OF_FIRST_FIXED_SURFACE - INTEGER(KIND=JPIB_K) :: LOC_TYPE_OF_SECOND_FIXED_SURFACE - INTEGER(KIND=JPIB_K) :: LOC_SCALED_VALUE_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LOC_SCALE_FACTOR_OF_FIRST_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LOC_SCALED_VALUE_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LOC_SCALE_FACTOR_OF_SECOND_FIXED_SURFACES - INTEGER(KIND=JPIB_K) :: LOC_LEVEL - INTEGER(KIND=JPIM_K) :: IS_MISSING - INTEGER(KIND=JPIM_K) :: STAT - CHARACTER(LEN=32), DIMENSION(7) :: REF - CHARACTER(LEN=32), DIMENSION(7) :: GOT - - - ! Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GET_HANLDE=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_TYPE_OF_LEVEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TYPE_OF_LEVEL_NOT_MATCH=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_TYPE_FIRST_FIXED_SURFACE=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TYPE_OF_FIRST_FIXED_SURFACE_NOT_MATCH=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_TYPE_SECOND_FIXED_SURFACE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TYPE_OF_SECOND_FIXED_SURFACE_NOT_MATCH=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_SCALED_VALUE_FIRST_FIXED_SURFACE=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SCALED_VALUE_FIRST_FIXED_SURFACE_NOT_MATCH=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SCALED_VALUE_FIRST_FIXED_SURFACE_NOT_MISSING=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_SCALE_FACTOR_FIRST_FIXED_SURFACE=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SCALE_FACTOR_FIRST_FIXED_SURFACE_NOT_MATCH=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SCALE_FACTOR_FIRST_FIXED_SURFACE_NOT_MISSING=13_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_SCALED_VALUE_SECOND_FIXED_SURFACE=14_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SCALED_VALUE_SECOND_FIXED_SURFACE_NOT_MATCH=15_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SCALED_VALUE_SECOND_FIXED_SURFACE_NOT_MISSING=16_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_SCALE_FACTOR_SECOND_FIXED_SURFACE=17_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SCALE_FACTOR_SECOND_FIXED_SURFACE_NOT_MATCH=18_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SCALE_FACTOR_SECOND_FIXED_SURFACE_NOT_MISSING=19_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_NOT_MATCH=20_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_NOT_MISSING=21_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_LEVEL=22_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - SELECT TYPE( GRIB => METADATA) - -#if 0 - CLASS IS (GRIB_METADATA_T) - - ! Get the grib handle from the metadata - PP_TRYCALL(ERRFLAG_GET_HANLDE) GRIB%GET_HANDLE( HANDLE, HOOKS ) - - ! Initialization of local variables - LOC_TYPE_OF_LEVEL = REPEAT( ' ', 128) - LOC_TYPE_OF_FIRST_FIXED_SURFACE=-1_JPIB_K - LOC_TYPE_OF_SECOND_FIXED_SURFACE=-1_JPIB_K - LOC_SCALED_VALUE_OF_FIRST_FIXED_SURFACES=-1_JPIB_K - LOC_SCALE_FACTOR_OF_FIRST_FIXED_SURFACES=-1_JPIB_K - LOC_SCALED_VALUE_OF_SECOND_FIXED_SURFACES=-1_JPIB_K - LOC_SCALE_FACTOR_OF_SECOND_FIXED_SURFACES=-1_JPIB_K - LOC_LEVEL=-1_JPIB_K - - ! Read the values from the grib handle - CALL GRIB_GET( HANDLE, 'typeOfLevel', LOC_TYPE_OF_LEVEL, STATUS=KRET(1) ) - CALL GRIB_GET( HANDLE, 'typeOfFirstFixedSurface', LOC_TYPE_OF_FIRST_FIXED_SURFACE, STATUS=KRET(2) ) - CALL GRIB_GET( HANDLE, 'typeOfSecondFixedSurface', LOC_TYPE_OF_SECOND_FIXED_SURFACE, STATUS=KRET(3) ) - - ! Perform checks - PP_DEBUG_CRITICAL_COND_THROW( KRET(1).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_TYPE_OF_LEVEL ) - PP_DEBUG_CRITICAL_COND_THROW( TRIM(ADJUSTL(LOC_TYPE_OF_LEVEL)) .NE. TRIM(ADJUSTL(TYPE_OF_LEVEL)), ERRFLAG_TYPE_OF_LEVEL_NOT_MATCH ) - - ! Check if the first fixed surface is the same - PP_DEBUG_CRITICAL_COND_THROW( KRET(2).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_TYPE_FIRST_FIXED_SURFACE ) - PP_DEBUG_CRITICAL_COND_THROW( TYPE_OF_FIRST_FIXED_SURFACE .NE. LOC_TYPE_OF_FIRST_FIXED_SURFACE, ERRFLAG_TYPE_OF_FIRST_FIXED_SURFACE_NOT_MATCH ) - - ! Check if the second fixed surface is the same - PP_DEBUG_CRITICAL_COND_THROW( KRET(3).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_TYPE_SECOND_FIXED_SURFACE ) - PP_DEBUG_CRITICAL_COND_THROW( TYPE_OF_SECOND_FIXED_SURFACE .NE. LOC_TYPE_OF_SECOND_FIXED_SURFACE, ERRFLAG_TYPE_OF_SECOND_FIXED_SURFACE_NOT_MATCH ) - - ! Check if the scaled value of the first fixed surface is the same - IF ( PRESENT(SCALED_VALUE_OF_FIRST_FIXED_SURFACES) ) THEN - CALL GRIB_GET( HANDLE, 'scaledValueOfFirstFixedSurface', LOC_SCALED_VALUE_OF_FIRST_FIXED_SURFACES, STATUS=KRET(4) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(4).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALED_VALUE_FIRST_FIXED_SURFACE ) - PP_DEBUG_CRITICAL_COND_THROW( SCALED_VALUE_OF_FIRST_FIXED_SURFACES .NE. LOC_SCALED_VALUE_OF_FIRST_FIXED_SURFACES, ERRFLAG_SCALED_VALUE_FIRST_FIXED_SURFACE_NOT_MATCH ) - ELSE - CALL GRIB_IS_MISSING( HANDLE, 'scaledValueOfFirstFixedSurface', IS_MISSING, STATUS=KRET(4) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(4).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALED_VALUE_FIRST_FIXED_SURFACE ) - IF ( IS_MISSING .EQ. 0 ) THEN - CALL GRIB_GET( HANDLE, 'scaledValueOfFirstFixedSurface', LOC_SCALED_VALUE_OF_FIRST_FIXED_SURFACES, STATUS=KRET(4) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(4).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALED_VALUE_FIRST_FIXED_SURFACE ) - PP_DEBUG_CRITICAL_THROW( ERRFLAG_SCALED_VALUE_FIRST_FIXED_SURFACE_NOT_MISSING ) - ENDIF - ENDIF - - ! Check if the scale factor of the first fixed surface is the same - IF ( PRESENT(SCALE_FACTOR_OF_FIRST_FIXED_SURFACES) ) THEN - CALL GRIB_GET( HANDLE, 'scaleFactorOfFirstFixedSurface', LOC_SCALE_FACTOR_OF_FIRST_FIXED_SURFACES, STATUS=KRET(5) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(5).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALE_FACTOR_FIRST_FIXED_SURFACE ) - PP_DEBUG_CRITICAL_COND_THROW( SCALE_FACTOR_OF_FIRST_FIXED_SURFACES .NE. LOC_SCALE_FACTOR_OF_FIRST_FIXED_SURFACES, ERRFLAG_SCALE_FACTOR_FIRST_FIXED_SURFACE_NOT_MATCH ) - ELSE - CALL GRIB_IS_MISSING( HANDLE, 'scaleFactorOfFirstFixedSurface', IS_MISSING, STATUS=KRET(5) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(5).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALE_FACTOR_FIRST_FIXED_SURFACE ) - IF ( IS_MISSING .EQ. 0 ) THEN - CALL GRIB_GET( HANDLE, 'scaleFactorOfFirstFixedSurface', LOC_SCALE_FACTOR_OF_FIRST_FIXED_SURFACES, STATUS=KRET(5) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(5).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALE_FACTOR_FIRST_FIXED_SURFACE ) - PP_DEBUG_CRITICAL_THROW( ERRFLAG_SCALE_FACTOR_FIRST_FIXED_SURFACE_NOT_MISSING ) - ENDIF - ENDIF - - ! Check if the scaled value of the second fixed surface is the same - IF ( PRESENT(SCALED_VALUE_OF_SECOND_FIXED_SURFACES) ) THEN - CALL GRIB_GET( HANDLE, 'scaledValueOfSecondFixedSurface', LOC_SCALED_VALUE_OF_SECOND_FIXED_SURFACES, STATUS=KRET(6) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(6).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALED_VALUE_SECOND_FIXED_SURFACE ) - PP_DEBUG_CRITICAL_COND_THROW( SCALED_VALUE_OF_SECOND_FIXED_SURFACES .NE. LOC_SCALED_VALUE_OF_SECOND_FIXED_SURFACES, ERRFLAG_SCALED_VALUE_SECOND_FIXED_SURFACE_NOT_MATCH ) - ELSE - CALL GRIB_IS_MISSING( HANDLE, 'scaledValueOfSecondFixedSurface', IS_MISSING, STATUS=KRET(6) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(6).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALED_VALUE_SECOND_FIXED_SURFACE ) - IF ( IS_MISSING .EQ. 0 ) THEN - CALL GRIB_GET( HANDLE, 'scaledValueOfSecondFixedSurface', LOC_SCALED_VALUE_OF_SECOND_FIXED_SURFACES, STATUS=KRET(6) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(6).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALED_VALUE_SECOND_FIXED_SURFACE ) - PP_DEBUG_CRITICAL_THROW( ERRFLAG_SCALED_VALUE_SECOND_FIXED_SURFACE_NOT_MISSING ) - ENDIF - ENDIF - - ! Check if the scale factor of the second fixed surface is the same - IF ( PRESENT(SCALE_FACTOR_OF_SECOND_FIXED_SURFACES) ) THEN - CALL GRIB_GET( HANDLE, 'scaleFactorOfSecondFixedSurface', LOC_SCALE_FACTOR_OF_SECOND_FIXED_SURFACES, STATUS=KRET(7) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(7).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALE_FACTOR_SECOND_FIXED_SURFACE ) - PP_DEBUG_CRITICAL_COND_THROW( SCALE_FACTOR_OF_SECOND_FIXED_SURFACES .NE. LOC_SCALE_FACTOR_OF_SECOND_FIXED_SURFACES, ERRFLAG_SCALE_FACTOR_SECOND_FIXED_SURFACE_NOT_MATCH ) - ELSE - CALL GRIB_IS_MISSING( HANDLE, 'scaleFactorOfSecondFixedSurface', IS_MISSING, STATUS=KRET(7) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(7).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALE_FACTOR_SECOND_FIXED_SURFACE ) - IF ( IS_MISSING .EQ. 0 ) THEN - CALL GRIB_GET( HANDLE, 'scaleFactorOfSecondFixedSurface', LOC_SCALE_FACTOR_OF_SECOND_FIXED_SURFACES, STATUS=KRET(7) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(7).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_SCALE_FACTOR_SECOND_FIXED_SURFACE ) - PP_DEBUG_CRITICAL_THROW( ERRFLAG_SCALE_FACTOR_SECOND_FIXED_SURFACE_NOT_MISSING ) - ENDIF - ENDIF - - ! Check if the level is the same - IF ( PRESENT(LEVEL) ) THEN - CALL GRIB_GET( HANDLE, 'level', LOC_LEVEL, STATUS=KRET(8) ) - PP_DEBUG_CRITICAL_COND_THROW( KRET(8).NE.GRIB_SUCCESS , ERRFLAG_UNABLE_TO_GET_LEVEL ) - PP_DEBUG_CRITICAL_COND_THROW( LEVEL .NE. LOC_LEVEL, ERRFLAG_LEVEL_NOT_MATCH ) - ELSE - PP_DEBUG_CRITICAL_COND_THROW( KRET(8).EQ.GRIB_SUCCESS , ERRFLAG_LEVEL_NOT_MISSING ) - ENDIF -#endif - - END SELECT - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - CHARACTER(LEN=32) :: TMP1 - CHARACTER(LEN=32) :: TMP2 - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_GET_HANLDE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get the grib handle' ) - CASE ( ERRFLAG_UNABLE_TO_GET_TYPE_OF_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get the type of level' ) - CASE ( ERRFLAG_TYPE_OF_LEVEL_NOT_MATCH ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'type of level does not match' ) - CASE ( ERRFLAG_UNABLE_TO_GET_TYPE_FIRST_FIXED_SURFACE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get the type of first fixed surface' ) - CASE ( ERRFLAG_TYPE_OF_FIRST_FIXED_SURFACE_NOT_MATCH ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'type of first fixed surface does not match' ) - CASE ( ERRFLAG_UNABLE_TO_GET_TYPE_SECOND_FIXED_SURFACE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get the type of second fixed surface' ) - CASE ( ERRFLAG_TYPE_OF_SECOND_FIXED_SURFACE_NOT_MATCH ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'type of second fixed surface does not match' ) - CASE ( ERRFLAG_UNABLE_TO_GET_SCALED_VALUE_FIRST_FIXED_SURFACE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get the scaled value of first fixed surface' ) - CASE ( ERRFLAG_SCALED_VALUE_FIRST_FIXED_SURFACE_NOT_MATCH ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'scaled value of first fixed surface does not match' ) - WRITE(TMP1,*,IOSTAT=STAT) LOC_SCALED_VALUE_OF_FIRST_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'got: '//TRIM(ADJUSTL(TMP1)) ) - IF ( PRESENT(SCALED_VALUE_OF_FIRST_FIXED_SURFACES) ) THEN - WRITE(TMP2,*,IOSTAT=STAT) SCALED_VALUE_OF_FIRST_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'expect: '//TRIM(ADJUSTL(TMP2)) ) - ENDIF - CASE ( ERRFLAG_SCALED_VALUE_FIRST_FIXED_SURFACE_NOT_MISSING ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'scaled value of first fixed surface is NOT missing as expected' ) - WRITE(TMP1,*,IOSTAT=STAT) LOC_SCALED_VALUE_OF_FIRST_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'got: '//TRIM(ADJUSTL(TMP1)) ) - CASE ( ERRFLAG_UNABLE_TO_GET_SCALE_FACTOR_FIRST_FIXED_SURFACE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get the scale factor of first fixed surface' ) - CASE ( ERRFLAG_SCALE_FACTOR_FIRST_FIXED_SURFACE_NOT_MATCH ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'scale factor of first fixed surface does not match' ) - WRITE(TMP1,*,IOSTAT=STAT) LOC_SCALE_FACTOR_OF_FIRST_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'got: '//TRIM(ADJUSTL(TMP1)) ) - IF ( PRESENT(SCALE_FACTOR_OF_FIRST_FIXED_SURFACES) ) THEN - WRITE(TMP2,*,IOSTAT=STAT) SCALE_FACTOR_OF_FIRST_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'expect: '//TRIM(ADJUSTL(TMP2)) ) - ENDIF - CASE ( ERRFLAG_SCALE_FACTOR_FIRST_FIXED_SURFACE_NOT_MISSING ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'scale factor of first fixed surface is NOT missing as expected' ) - WRITE(TMP1,*,IOSTAT=STAT) LOC_SCALE_FACTOR_OF_FIRST_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'got: '//TRIM(ADJUSTL(TMP1)) ) - CASE ( ERRFLAG_UNABLE_TO_GET_SCALED_VALUE_SECOND_FIXED_SURFACE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get the scaled value of second fixed surface' ) - CASE ( ERRFLAG_SCALED_VALUE_SECOND_FIXED_SURFACE_NOT_MATCH ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'scaled value of second fixed surface does not match' ) - WRITE(TMP1,*,IOSTAT=STAT) LOC_SCALED_VALUE_OF_SECOND_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'got: '//TRIM(ADJUSTL(TMP1)) ) - IF ( PRESENT(SCALED_VALUE_OF_SECOND_FIXED_SURFACES) ) THEN - WRITE(TMP2,*,IOSTAT=STAT) SCALED_VALUE_OF_SECOND_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'expect: '//TRIM(ADJUSTL(TMP2)) ) - ENDIF - CASE ( ERRFLAG_SCALED_VALUE_SECOND_FIXED_SURFACE_NOT_MISSING ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'scaled value of second fixed surface is NOT missing as expected' ) - WRITE(TMP1,*,IOSTAT=STAT) LOC_SCALED_VALUE_OF_SECOND_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'got: '//TRIM(ADJUSTL(TMP1)) ) - CASE ( ERRFLAG_UNABLE_TO_GET_SCALE_FACTOR_SECOND_FIXED_SURFACE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get the scale factor of second fixed surface' ) - CASE ( ERRFLAG_SCALE_FACTOR_SECOND_FIXED_SURFACE_NOT_MATCH ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'scale factor of second fixed surface does not match' ) - WRITE(TMP1,*,IOSTAT=STAT) LOC_SCALE_FACTOR_OF_SECOND_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'got: '//TRIM(ADJUSTL(TMP1)) ) - IF ( PRESENT(SCALE_FACTOR_OF_SECOND_FIXED_SURFACES) ) THEN - WRITE(TMP2,*,IOSTAT=STAT) SCALE_FACTOR_OF_SECOND_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'expect: '//TRIM(ADJUSTL(TMP2)) ) - ENDIF - CASE ( ERRFLAG_SCALE_FACTOR_SECOND_FIXED_SURFACE_NOT_MISSING ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'scaled factor of second fixed surface is NOT missing as expected' ) - WRITE(TMP1,*,IOSTAT=STAT) LOC_SCALE_FACTOR_OF_SECOND_FIXED_SURFACES - PP_DEBUG_PUSH_MSG_TO_FRAME( 'got: '//TRIM(ADJUSTL(TMP1)) ) - CASE ( ERRFLAG_LEVEL_NOT_MATCH ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level does not match' ) - WRITE(TMP1,*,IOSTAT=STAT) LOC_LEVEL - PP_DEBUG_PUSH_MSG_TO_FRAME( 'got: '//TRIM(ADJUSTL(TMP1)) ) - IF ( PRESENT(LEVEL) ) THEN - WRITE(TMP2,*,IOSTAT=STAT) LEVEL - PP_DEBUG_PUSH_MSG_TO_FRAME( 'expect: '//TRIM(ADJUSTL(TMP2)) ) - ENDIF - CASE ( ERRFLAG_LEVEL_NOT_MISSING ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level is missing' ) - CASE ( ERRFLAG_UNABLE_TO_GET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get the level' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CHECK_LEVELS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE LEVELS_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-model-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-model-configurator/CMakeLists.txt deleted file mode 100644 index 33f1348e6..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-model-configurator/CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_MODEL_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4_model sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_MODEL_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_MODEL_DIR}/grib2_section4_model_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_MODEL_DIR}/grib2_section4_model_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_MODEL_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_MODEL_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_MODEL_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-model-configurator/grib2_section4_model_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-model-configurator/grib2_section4_model_factory_mod.F90 deleted file mode 100644 index 4221ea4de..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-model-configurator/grib2_section4_model_factory_mod.F90 +++ /dev/null @@ -1,777 +0,0 @@ -!> -!> @file grib2_section4_model_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Model Configurator objects. -!> -!> The `GRIB2_SECTION4_MODEL_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Model Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_MODEL_CONFIGURATOR_000_MOD::GRIB2_MODEL_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_param_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_MODEL_FACTORY_MOD' -MODULE GRIB2_SECTION4_MODEL_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the param_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_MODEL_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_MODEL_CONFIGURATOR_CFG - MODULE PROCEDURE MAKE_GRIB2_MODEL_CONFIGURATOR_LAZY -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_MODEL_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_MODEL_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Model Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Model Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_MODEL_CONFIGURATOR_000_T`) -!> to the `GRIB2_MODEL_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_MODEL_CONFIGURATOR The GRIB2 Model Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Model Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Model Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_MODEL_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_MODEL_CONFIGURATOR_000_MOD::GRIB2_MODEL_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_MODEL_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_MODEL_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_MODEL_CONFIGURATOR_CFG( GRIB2_MODEL_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_MODEL_MOD, ONLY: GRIB2_SECTION4_MODEL_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_MODEL_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_MODEL_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_MODEL_T::GRIB2_MODEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_MODEL_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get param_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown param_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating param_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing param_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_MODEL_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief Factory function for creating or initializing GRIB2 Section 3 objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Section 3 object -!> based on the provided parameters. It assigns the proper type (`GRIB2_SECTION3_000_T`) -!> to the `GRIB2_SECTION3` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_SECTION3 The GRIB2 Section 3 object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_SECTION3_040_T` -!> - `GRIB2_SECTION3_050_T` -!> - `GRIB2_SECTION3_101_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION0_040_MOD::GRIB2_SECTION0_040_T -!> - @dependency [TYPE] GRIB2_SECTION0_050_MOD::GRIB2_SECTION0_050_T -!> - @dependency [TYPE] GRIB2_SECTION0_101_MOD::GRIB2_SECTION0_101_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_040_T -!> @see GRIB2_SECTION3_050_T -!> @see GRIB2_SECTION3_101_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_MODEL_CONFIGURATOR_LAZY' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_MODEL_CONFIGURATOR_LAZY( GRIB2_MODEL_CONFIGURATOR, SEC4ID, & -& MSG, PAR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_MODEL_MOD, ONLY: GRIB2_SECTION4_MODEL_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - -#if defined( PP_HAS_GET_GRIB2_MODEL_CONFIGURATOR_ID_FROM_MESSAGE ) - !> Symbols imported from the mapping module - USE :: MARS2GRIB_MAPPING_MOD, ONLY: GET_GRIB2_MODEL_CONFIGURATOR_ID_FROM_MESSAGE -#endif - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_MODEL_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - -#if defined( PP_HAS_GET_GRIB2_MODEL_CONFIGURATOR_ID_FROM_MESSAGE ) - - !> Get the section0 ID from the message - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) GET_GRIB2_MODEL_CONFIGURATOR_ID_FROM_MESSAGE( MSG, PAR, SEC4ID, OPT, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_MODEL_T::GRIB2_MODEL_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_MODEL_CONFIGURATOR%INIT( MSG, PAR, OPT, HOOKS ) - -#endif - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get section3 ID' ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section3 number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing section3 number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_MODEL_CONFIGURATOR_LAZY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Destroys a GRIB2 Model Configurator structure. -!> -!> This function takes a GRIB2 Model Configurator object (`GRIB2_MODEL_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_MODEL_CONFIGURATOR The GRIB2 Model Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_MODEL_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_MODEL_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_MODEL_CONFIGURATOR( GRIB2_MODEL_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_MODEL_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_MODEL_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_MODEL_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_MODEL_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating model_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing model_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_MODEL_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Model Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Model Configurator object. -!> @param [out] MODEL_CONFIGURATOR_TYPE Identifier of the param_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_MODEL_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_MODEL_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_MODEL_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, MODEL_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: MODEL_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CMODEL_CONFIGURATOR_TYPE - LOGICAL :: HAS_MODEL_CONFIGURATOR - LOGICAL :: MODEL_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - MODEL_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the MODEL_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_KEY, HAS_MODEL_CONFIGURATOR, HOOKS ) - - !> Read the MODEL_CONFIGURATOR template number - IF ( HAS_MODEL_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, MODEL_CONFIGURATOR_KEY, CMODEL_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CMODEL_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CMODEL_CONFIGURATOR_TYPE, MODEL_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( MODEL_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CMODEL_CONFIGURATOR_TYPE, MODEL_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CMODEL_CONFIGURATOR_TYPE) - CASE ( 'default' ) - MODEL_CONFIGURATOR_TYPE = 0_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CMODEL_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'MODEL_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating MODEL_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_MODEL_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_MODEL_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-model-configurator/grib2_section4_model_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-model-configurator/grib2_section4_model_mod.F90 deleted file mode 100644 index 673f5083f..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-model-configurator/grib2_section4_model_mod.F90 +++ /dev/null @@ -1,942 +0,0 @@ -!> -!> @file grib2_section4_model_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 Model configuration operations. -!> -!> The `GRIB2_SECTION4_MODEL_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 model configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 model configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_MODEL_INIT -!> - @see GRIB2_SECTION4_MODEL_ALLOCATE -!> - @see GRIB2_SECTION4_MODEL_PRESET -!> - @see GRIB2_SECTION4_MODEL_RUNTIME -!> - @see GRIB2_SECTION4_MODEL_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_MODEL_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_model_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_MODEL_MOD' -MODULE GRIB2_SECTION4_MODEL_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 model configuration handler. -!> -!> The `GRIB2_SECTION4_MODEL_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 model configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_MODEL_T - - !> Default symbols visibility - PRIVATE - - INTEGER(KIND=JPIB_K) :: GENERATING_PROCESS_IDENTIFIER_=UNDEF_PARAM_E - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 model configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_MODEL_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 model configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_MODEL_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 model configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_MODEL_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 model configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of model and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_MODEL_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 model configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_MODEL_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_MODEL_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 model configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 model configuration object (`THIS`) using the provided model parameter (`MODEL`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MODEL_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_MODEL_INIT -!> @see GRIB2_SECTION4_MODEL_ALLOCATE -!> @see GRIB2_SECTION4_MODEL_PRESET -!> @see GRIB2_SECTION4_MODEL_RUNTIME -!> @see GRIB2_SECTION4_MODEL_TO_BE_ENCODED -!> @see GRIB2_SECTION4_MODEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_MODEL_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_MODEL_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MODEL_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Local variables - LOGICAL :: HAS_GENERATING_PROCESS_IDENTIFIER - INTEGER(KIND=JPIB_K) :: IO_ERROR - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'MODEL' - THIS%KIND_ = 'MODEL' - - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'generating-process-identifier', HAS_GENERATING_PROCESS_IDENTIFIER, HOOKS ) - - ! Read the subCentre - IF (HAS_GENERATING_PROCESS_IDENTIFIER) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'generating-process-identifier', THIS%GENERATING_PROCESS_IDENTIFIER_, HOOKS ) - ELSE - THIS%GENERATING_PROCESS_IDENTIFIER_ = 16_JPIB_K - END IF - - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to read cfg' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_MODEL_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 model configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 model configuration object (`THIS`) using the provided model parameters (`MODEL`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MODEL_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_MODEL_ALLOCATE -!> @see GRIB2_SECTION4_MODEL_INIT -!> @see GRIB2_SECTION4_MODEL_PRESET -!> @see GRIB2_SECTION4_MODEL_RUNTIME -!> @see GRIB2_SECTION4_MODEL_TO_BE_ENCODED -!> @see GRIB2_SECTION4_MODEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_MODEL_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_MODEL_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MODEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_MODEL_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 model configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 model configuration object (`THIS`) using the provided model parameter (`MODEL`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MODEL_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_MODEL_PRESET -!> @see GRIB2_SECTION4_MODEL_ALLOCATE -!> @see GRIB2_SECTION4_MODEL_INIT -!> @see GRIB2_SECTION4_MODEL_RUNTIME -!> @see GRIB2_SECTION4_MODEL_TO_BE_ENCODED -!> @see GRIB2_SECTION4_MODEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_MODEL_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_MODEL_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: IMODEL2CMODEL - USE :: GRIB_API, ONLY: GRIB_SUCCESS - USE :: GRIB_API, ONLY: GRIB_IS_DEFINED - USE :: GRIB_API, ONLY: GRIB_GET - USE :: CGRIB_METADATA_MOD, ONLY: CGRIB_METADATA_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MODEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Local variables - CHARACTER(LEN=32) :: TMPMODEL - INTEGER(KIND=JPIM_K) :: KRET - INTEGER(KIND=JPIM_K) :: HANDLE - INTEGER(KIND=JPIM_K) :: IS_DEFINED - INTEGER(KIND=JPIM_K) :: LOCAL_DEFINITION - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CHECK_IS_DEFINED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_LOCAL_DEF=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GET_HANDLE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - IF (MSG%MODEL.NE.UNDEF_PARAM_E) THEN - PP_TRYCALL(ERRFLAG_CONVERT_MODEL) IMODEL2CMODEL(MSG%MODEL, TMPMODEL, HOOKS) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'model', TRIM(ADJUSTL(TMPMODEL)) ) - ENDIF - - IF ( PAR%GENERATING_PROCESS_IDENTIFIER .NE. UNDEF_PARAM_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'generatingProcessIdentifier', PAR%GENERATING_PROCESS_IDENTIFIER ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'generatingProcessIdentifier', THIS%GENERATING_PROCESS_IDENTIFIER_ ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_GET_HANDLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error getting handle' ) - CASE ( ERRFLAG_UNABLE_TO_CHECK_IS_DEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking is_defined(localDefinitionNumber)' ) - CASE ( ERRFLAG_UNABLE_TO_GET_LOCAL_DEF ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error getting localDefinitionNumber' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_CONVERT_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting model' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_MODEL_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 model configuration using provided parameters, message data, and model history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 model configuration object (`THIS`) using the provided model parameters (`MODEL`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_MODEL_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_MODEL_RUNTIME -!> @see GRIB2_SECTION4_MODEL_ALLOCATE -!> @see GRIB2_SECTION4_MODEL_INIT -!> @see GRIB2_SECTION4_MODEL_PRESET -!> @see GRIB2_SECTION4_MODEL_TO_BE_ENCODED -!> @see GRIB2_SECTION4_MODEL_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_MODEL_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_MODEL_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: IMODEL2CMODEL - USE :: GRIB_API, ONLY: GRIB_SUCCESS - USE :: GRIB_API, ONLY: GRIB_IS_DEFINED - USE :: GRIB_API, ONLY: GRIB_GET - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MODEL_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Local - CHARACTER(LEN=32) :: TMPMODEL - INTEGER(KIND=JPIM_K) :: KRET - INTEGER(KIND=JPIM_K) :: HANDLE - INTEGER(KIND=JPIM_K) :: IS_DEFINED - INTEGER(KIND=JPIM_K) :: LOCAL_DEFINITION - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CHECK_IS_DEFINED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_LOCAL_DEF=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GET_HANDLE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - IF (MSG%MODEL.NE.UNDEF_PARAM_E) THEN - PP_TRYCALL(ERRFLAG_CONVERT_MODEL) IMODEL2CMODEL(MSG%MODEL, TMPMODEL, HOOKS) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'model', TRIM(ADJUSTL(TMPMODEL)) ) - ENDIF - - IF ( PAR%GENERATING_PROCESS_IDENTIFIER .NE. UNDEF_PARAM_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'generatingProcessIdentifier', PAR%GENERATING_PROCESS_IDENTIFIER ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'generatingProcessIdentifier', THIS%GENERATING_PROCESS_IDENTIFIER_ ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_GET_HANDLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error getting handle' ) - CASE ( ERRFLAG_UNABLE_TO_CHECK_IS_DEFINED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error checking is_defined(localDefinitionNumber)' ) - CASE ( ERRFLAG_UNABLE_TO_GET_LOCAL_DEF ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error getting localDefinitionNumber' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_CONVERT_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting model' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_MODEL_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 model configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 model configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_MODEL_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_MODEL_INIT -!> @see GRIB2_SECTION4_MODEL_ALLOCATE -!> @see GRIB2_SECTION4_MODEL_PRESET -!> @see GRIB2_SECTION4_MODEL_RUNTIME -!> @see GRIB2_SECTION4_MODEL_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_MODEL_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_MODEL_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_MODEL_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_MODEL_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_MODEL_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/CMakeLists.txt deleted file mode 100644 index 8474f2d9b..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_PARAM_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4_param sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_PARAM_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_PARAM_DIR}/grib2_section4_param_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_PARAM_DIR}/grib2_section4_paramid_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_PARAM_DIR}/grib2_section4_paramidecmf_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_PARAM_DIR}/grib2_section4_param_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_PARAM_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_PARAM_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_PARAM_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_param_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_param_factory_mod.F90 deleted file mode 100644 index a5dfe97b2..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_param_factory_mod.F90 +++ /dev/null @@ -1,595 +0,0 @@ -!> -!> @file grib2_section4_param_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> The `GRIB2_SECTION4_PARAM_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Param Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_PARAM_CONFIGURATOR_000_MOD::GRIB2_PARAM_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_param_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_PARAM_FACTORY_MOD' -MODULE GRIB2_SECTION4_PARAM_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the param_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_PARAM_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_PARAM_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_PARAM_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_PARAM_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Param Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_PARAM_CONFIGURATOR_000_T`) -!> to the `GRIB2_PARAM_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_PARAM_CONFIGURATOR The GRIB2 Param Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Param Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_PARAM_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_PARAM_CONFIGURATOR_000_MOD::GRIB2_PARAM_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_PARAM_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_PARAM_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_PARAM_CONFIGURATOR_CFG( GRIB2_PARAM_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_PARAM_MOD, ONLY: GRIB2_SECTION4_PARAM_T - USE :: GRIB2_SECTION4_PARAMID_MOD, ONLY: GRIB2_SECTION4_PARAMID_T - USE :: GRIB2_SECTION4_PARAMIDECMF_MOD, ONLY: GRIB2_SECTION4_PARAMIDECMF_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_PARAM_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_PARAM_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_PARAM_T::GRIB2_PARAM_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION4_PARAMID_T::GRIB2_PARAM_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 2 ) - - ALLOCATE( GRIB2_SECTION4_PARAMIDECMF_T::GRIB2_PARAM_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_PARAM_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get param_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown param_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating param_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing param_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_PARAM_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Param Configurator structure. -!> -!> This function takes a GRIB2 Param Configurator object (`GRIB2_PARAM_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_PARAM_CONFIGURATOR The GRIB2 Param Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_PARAM_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_PARAM_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_PARAM_CONFIGURATOR( GRIB2_PARAM_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_PARAM_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_PARAM_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_PARAM_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_PARAM_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating param_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing param_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_PARAM_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Param Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [out] PARAM_CONFIGURATOR_TYPE Identifier of the param_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_PARAM_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_PARAM_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_PARAM_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, PARAM_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: PARAM_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CPARAM_CONFIGURATOR_TYPE - LOGICAL :: HAS_PARAM_CONFIGURATOR - LOGICAL :: PARAM_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - PARAM_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the PARAM_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_KEY, HAS_PARAM_CONFIGURATOR, HOOKS ) - - !> Read the PARAM_CONFIGURATOR template number - IF ( HAS_PARAM_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, PARAM_CONFIGURATOR_KEY, CPARAM_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CPARAM_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CPARAM_CONFIGURATOR_TYPE, PARAM_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( PARAM_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CPARAM_CONFIGURATOR_TYPE, PARAM_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CPARAM_CONFIGURATOR_TYPE) - CASE ( 'param' ) - PARAM_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ( 'paramId' ) - PARAM_CONFIGURATOR_TYPE = 1_JPIB_K - CASE ( 'paramIdECMF' ) - PARAM_CONFIGURATOR_TYPE = 2_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CPARAM_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'PARAM_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating PARAM_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_PARAM_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_PARAM_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_param_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_param_mod.F90 deleted file mode 100644 index 6589b43c6..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_param_mod.F90 +++ /dev/null @@ -1,844 +0,0 @@ -!> -!> @file grib2_section4_param_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_PARAM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_PARAM_INIT -!> - @see GRIB2_SECTION4_PARAM_ALLOCATE -!> - @see GRIB2_SECTION4_PARAM_PRESET -!> - @see GRIB2_SECTION4_PARAM_RUNTIME -!> - @see GRIB2_SECTION4_PARAM_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_PARAM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_param_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_PARAM_MOD' -MODULE GRIB2_SECTION4_PARAM_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_PARAM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_PARAM_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_PARAM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_PARAM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_PARAM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_PARAM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_PARAM_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_PARAM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_PARAM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAM_INIT -!> @see GRIB2_SECTION4_PARAM_ALLOCATE -!> @see GRIB2_SECTION4_PARAM_PRESET -!> @see GRIB2_SECTION4_PARAM_RUNTIME -!> @see GRIB2_SECTION4_PARAM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'PARAM' - THIS%KIND_ = 'PARAM' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PARAM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAM_ALLOCATE -!> @see GRIB2_SECTION4_PARAM_INIT -!> @see GRIB2_SECTION4_PARAM_PRESET -!> @see GRIB2_SECTION4_PARAM_RUNTIME -!> @see GRIB2_SECTION4_PARAM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PARAM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAM_PRESET -!> @see GRIB2_SECTION4_PARAM_ALLOCATE -!> @see GRIB2_SECTION4_PARAM_INIT -!> @see GRIB2_SECTION4_PARAM_RUNTIME -!> @see GRIB2_SECTION4_PARAM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PARAM_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAM_RUNTIME -!> @see GRIB2_SECTION4_PARAM_ALLOCATE -!> @see GRIB2_SECTION4_PARAM_INIT -!> @see GRIB2_SECTION4_PARAM_PRESET -!> @see GRIB2_SECTION4_PARAM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_PARAM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAM_INIT -!> @see GRIB2_SECTION4_PARAM_ALLOCATE -!> @see GRIB2_SECTION4_PARAM_PRESET -!> @see GRIB2_SECTION4_PARAM_RUNTIME -!> @see GRIB2_SECTION4_PARAM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_PARAM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_paramid_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_paramid_mod.F90 deleted file mode 100644 index 3979d29f9..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_paramid_mod.F90 +++ /dev/null @@ -1,1021 +0,0 @@ -!> -!> @file grib2_section4_paramid_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_PARAMID_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_PARAMID_INIT -!> - @see GRIB2_SECTION4_PARAMID_ALLOCATE -!> - @see GRIB2_SECTION4_PARAMID_PRESET -!> - @see GRIB2_SECTION4_PARAMID_RUNTIME -!> - @see GRIB2_SECTION4_PARAMID_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_PARAMID_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_paramid_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_PARAMID_MOD' -MODULE GRIB2_SECTION4_PARAMID_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_PARAMID_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_PARAMID_T - - !> Default symbols visibility - PRIVATE - - CHARACTER(LEN=16) :: DATASET_FOR_LOCAL_ = REPEAT(' ',16) !< The type of the section - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_PARAMID_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_PARAMID_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_PARAMID_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_PARAMID_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_PARAMID_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_PARAMID_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_PARAMID_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAMID_INIT -!> @see GRIB2_SECTION4_PARAMID_ALLOCATE -!> @see GRIB2_SECTION4_PARAMID_PRESET -!> @see GRIB2_SECTION4_PARAMID_RUNTIME -!> @see GRIB2_SECTION4_PARAMID_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAMID_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAMID_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAMID_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAMID_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_DATASET_FOR_LOCAL - CHARACTER(LEN=:), ALLOCATABLE :: DATASET_FOR_LOCAL - INTEGER(KIND=JPIB_K) :: DEALLOC_STAT - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'PARAM' - THIS%KIND_ = 'PARAMID' - - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'dataset-for-local', HAS_DATASET_FOR_LOCAL, HOOKS ) - - ! Read the subCentre - IF (HAS_DATASET_FOR_LOCAL) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_STRING( CFG, 'dataset-for-local', DATASET_FOR_LOCAL, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(DATASET_FOR_LOCAL), ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_CRITICAL_COND_THROW( LEN_TRIM(DATASET_FOR_LOCAL).LE.0, ERRFLAG_UNABLE_TO_READ_CFG ) - THIS%DATASET_FOR_LOCAL_ = TRIM(ADJUSTL(DATASET_FOR_LOCAL)) - DEALLOCATE(DATASET_FOR_LOCAL, STAT=DEALLOC_STAT, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STAT.NE.0, ERRFLAG_UNABLE_TO_DEALLOCATE ) - ELSE - THIS%DATASET_FOR_LOCAL_ = REPEAT(' ',16) - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate memory' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error message: ' // TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG, STAT=DEALLOC_STAT) - ENDIF - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAMID_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PARAMID_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAMID_ALLOCATE -!> @see GRIB2_SECTION4_PARAMID_INIT -!> @see GRIB2_SECTION4_PARAMID_PRESET -!> @see GRIB2_SECTION4_PARAMID_RUNTIME -!> @see GRIB2_SECTION4_PARAMID_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAMID_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAMID_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAMID_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAMID_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAMID_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PARAMID_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAMID_PRESET -!> @see GRIB2_SECTION4_PARAMID_ALLOCATE -!> @see GRIB2_SECTION4_PARAMID_INIT -!> @see GRIB2_SECTION4_PARAMID_RUNTIME -!> @see GRIB2_SECTION4_PARAMID_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAMID_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAMID_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAMID_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - !> Symbols imported from other libraries - USE :: GRIB_API, ONLY: GRIB_GET - USE :: GRIB_API, ONLY: GRIB_SUCCESS - USE :: GRIB_API, ONLY: GRIB_GET_ERROR_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAMID_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIM_K) :: HANDLE - INTEGER(KIND=JPIM_K) :: KRET - INTEGER(KIND=JPIB_K) :: TMP - CHARACTER(LEN=:), ALLOCATABLE :: JSON - CHARACTER(LEN=32) :: CPARAM - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DUMP=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_HANDLE=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GRIB_GET_FAILED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERFLAG_METADATA_NOT_SUPPORTED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON = 6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) -#if 0 - ! Sometimes before setting the paramId we need to set the datasetForLocal for unknown reasons - !IF ( LEN_TRIM(THIS%DATASET_FOR_LOCAL_) .GT. 0 ) THEN - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'datasetForLocal', TRIM(ADJUSTL(THIS%DATASET_FOR_LOCAL_)) ) - !END IF - - CPARAM = REPEAT(' ',32) - WRITE(CPARAM,'(I32)') MSG%PARAM - PP_TRYCALL(ERRFLAG_METADATA) METADATA%DUMP_SAMPLE( 'msg_'//TRIM(ADJUSTL(CPARAM))//'.grib', HOOKS ) -#endif - ! Set the paramId - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'paramId', MSG%PARAM ) -#if 0 - ! Paranoid verification - SELECT TYPE(A => METADATA) - - CLASS IS (GRIB_METADATA_T) - - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_HANDLE) A%GET_HANDLE( HANDLE, HOOKS ) - - ! Set the values to the handle - CALL GRIB_GET( HANDLE, 'paramId', TMP, STATUS=KRET ) - PP_DEBUG_DEVELOP_COND_THROW( KRET.NE.GRIB_SUCCESS, ERRFLAG_GRIB_GET_FAILED ) - - IF (TMP .NE. MSG%PARAM .OR. TMP .LE. 0 ) THEN - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - IF ( ALLOCATED(JSON) ) THEN - WRITE(*,*) ' PARAM-PRE-SETTER :: ERROR PARAMAID DOES NOT MATCH :: ', TMP, MSG%PARAM - WRITE(*,'(A)') ' PARAM-PRE-SETTER :: ERROR PARAMAID DOES NOT MATCH :: '//TRIM(ADJUSTL(JSON)) - DEALLOCATE(JSON, STAT=TMP) - ENDIF - END IF - - CLASS DEFAULT - PP_DEBUG_CRITICAL_THROW( ERFLAG_METADATA_NOT_SUPPORTED ) - END SELECT -#endif - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=4096) :: GRIB_ERROR - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_DUMP ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error dumping metadata' ) - CASE ( ERRFLAG_UNABLE_TO_GET_HANDLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get handle' ) - CASE ( ERRFLAG_GRIB_GET_FAILED ) - GRIB_ERROR = REPEAT(' ', 4096) - CALL GRIB_GET_ERROR_STRING( KRET, GRIB_ERROR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error getting paramId' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'grib error: '//TRIM(ADJUSTL(GRIB_ERROR)) ) - CASE ( ERFLAG_METADATA_NOT_SUPPORTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'metadata not supported' ) - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAMID_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PARAMID_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAMID_RUNTIME -!> @see GRIB2_SECTION4_PARAMID_ALLOCATE -!> @see GRIB2_SECTION4_PARAMID_INIT -!> @see GRIB2_SECTION4_PARAMID_PRESET -!> @see GRIB2_SECTION4_PARAMID_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAMID_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAMID_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAMID_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - !> Symbols imported from other libraries - USE :: GRIB_API, ONLY: GRIB_GET - USE :: GRIB_API, ONLY: GRIB_SUCCESS - USE :: GRIB_API, ONLY: GRIB_GET_ERROR_STRING - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAMID_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIM_K) :: HANDLE - INTEGER(KIND=JPIM_K) :: KRET - INTEGER(KIND=JPIB_K) :: TMP - CHARACTER(LEN=:), ALLOCATABLE :: JSON - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DUMP=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_HANDLE=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_GRIB_GET_FAILED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERFLAG_METADATA_NOT_SUPPORTED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MARS_TO_JSON = 6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - IF ( LEN_TRIM(THIS%DATASET_FOR_LOCAL_) .GT. 0 ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'datasetForLocal', TRIM(ADJUSTL(THIS%DATASET_FOR_LOCAL_)) ) - END IF - -#if 0 - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) METADATA%DUMP_SAMPLE( 'before_paramID.grib', HOOKS ) -#endif - - ! Set the paramId - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'paramId', MSG%PARAM ) - -#if 0 - ! Paranoid verification - SELECT TYPE(A => METADATA) - - CLASS IS (GRIB_METADATA_T) - - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_HANDLE) A%GET_HANDLE( HANDLE, HOOKS ) - - ! Set the values to the handle - CALL GRIB_GET( HANDLE, 'paramId', TMP, STATUS=KRET ) - PP_DEBUG_DEVELOP_COND_THROW( KRET.NE.GRIB_SUCCESS, ERRFLAG_GRIB_GET_FAILED ) - - IF (TMP .NE. MSG%PARAM .OR. TMP .LE. 0 ) THEN - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) MSG%TO_JSON( JSON, HOOKS ) - IF ( ALLOCATED(JSON) ) THEN - WRITE(*,*) ' PARAM-RT-SETTER :: ERROR PARAMAID DOES NOT MATCH :: ', TMP, MSG%PARAM - WRITE(*,'(A)') ' PARAM-RT-SETTER :: ERROR PARAMAID DOES NOT MATCH :: '//TRIM(ADJUSTL(JSON)) - DEALLOCATE(JSON, STAT=TMP) - ENDIF - END IF - - CLASS DEFAULT - PP_DEBUG_CRITICAL_THROW( ERFLAG_METADATA_NOT_SUPPORTED ) - END SELECT - - PP_TRYCALL(ERRFLAG_MARS_TO_JSON) METADATA%DUMP_SAMPLE( 'after_paramID.grib', HOOKS ) -#endif - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=4096) :: GRIB_ERROR - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_UNABLE_TO_GET_HANDLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get handle' ) - CASE ( ERRFLAG_GRIB_GET_FAILED ) - GRIB_ERROR = REPEAT(' ', 4096) - CALL GRIB_GET_ERROR_STRING( KRET, GRIB_ERROR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error getting paramId' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'grib error: '//TRIM(ADJUSTL(GRIB_ERROR)) ) - CASE ( ERFLAG_METADATA_NOT_SUPPORTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'metadata not supported' ) - CASE ( ERRFLAG_MARS_TO_JSON ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting mars to json' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAMID_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_PARAMID_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAMID_INIT -!> @see GRIB2_SECTION4_PARAMID_ALLOCATE -!> @see GRIB2_SECTION4_PARAMID_PRESET -!> @see GRIB2_SECTION4_PARAMID_RUNTIME -!> @see GRIB2_SECTION4_PARAMID_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAMID_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAMID_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAMID_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAMID_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_PARAMID_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_paramidecmf_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_paramidecmf_mod.F90 deleted file mode 100644 index 993dfd21e..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-param-configurator/grib2_section4_paramidecmf_mod.F90 +++ /dev/null @@ -1,850 +0,0 @@ -!> -!> @file grib2_section4_paramidecmf_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_PARAMIDECMF_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_PARAMIDECMF_INIT -!> - @see GRIB2_SECTION4_PARAMIDECMF_ALLOCATE -!> - @see GRIB2_SECTION4_PARAMIDECMF_PRESET -!> - @see GRIB2_SECTION4_PARAMIDECMF_RUNTIME -!> - @see GRIB2_SECTION4_PARAMIDECMF_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_PARAMIDECMF_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_paramidecmf_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_PARAMIDECMF_MOD' -MODULE GRIB2_SECTION4_PARAMIDECMF_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_PARAMIDECMF_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_PARAMIDECMF_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_PARAMIDECMF_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_PARAMIDECMF_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_PARAMIDECMF_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_PARAMIDECMF_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_PARAMIDECMF_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_PARAMIDECMF_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_PARAMIDECMF_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAMIDECMF_INIT -!> @see GRIB2_SECTION4_PARAMIDECMF_ALLOCATE -!> @see GRIB2_SECTION4_PARAMIDECMF_PRESET -!> @see GRIB2_SECTION4_PARAMIDECMF_RUNTIME -!> @see GRIB2_SECTION4_PARAMIDECMF_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAMIDECMF_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAMIDECMF_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAMIDECMF_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAMIDECMF_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'PARAM' - THIS%KIND_ = 'PARAMIDECMF' - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAMIDECMF_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PARAMIDECMF_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAMIDECMF_ALLOCATE -!> @see GRIB2_SECTION4_PARAMIDECMF_INIT -!> @see GRIB2_SECTION4_PARAMIDECMF_PRESET -!> @see GRIB2_SECTION4_PARAMIDECMF_RUNTIME -!> @see GRIB2_SECTION4_PARAMIDECMF_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAMIDECMF_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAMIDECMF_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAMIDECMF_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAMIDECMF_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAMIDECMF_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PARAMIDECMF_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAMIDECMF_PRESET -!> @see GRIB2_SECTION4_PARAMIDECMF_ALLOCATE -!> @see GRIB2_SECTION4_PARAMIDECMF_INIT -!> @see GRIB2_SECTION4_PARAMIDECMF_RUNTIME -!> @see GRIB2_SECTION4_PARAMIDECMF_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAMIDECMF_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAMIDECMF_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAMIDECMF_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAMIDECMF_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Set the paramId - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'paramIdECMF', MSG%PARAM ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAMIDECMF_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PARAMIDECMF_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAMIDECMF_RUNTIME -!> @see GRIB2_SECTION4_PARAMIDECMF_ALLOCATE -!> @see GRIB2_SECTION4_PARAMIDECMF_INIT -!> @see GRIB2_SECTION4_PARAMIDECMF_PRESET -!> @see GRIB2_SECTION4_PARAMIDECMF_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PARAMIDECMF_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAMIDECMF_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAMIDECMF_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAMIDECMF_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Set the paramId - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'paramIdECMF', MSG%PARAM ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAMIDECMF_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_PARAMIDECMF_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PARAMIDECMF_INIT -!> @see GRIB2_SECTION4_PARAMIDECMF_ALLOCATE -!> @see GRIB2_SECTION4_PARAMIDECMF_PRESET -!> @see GRIB2_SECTION4_PARAMIDECMF_RUNTIME -!> @see GRIB2_SECTION4_PARAMIDECMF_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PARAMIDECMF_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PARAMIDECMF_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PARAMIDECMF_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PARAMIDECMF_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_PARAMIDECMF_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/CMakeLists.txt deleted file mode 100644 index e57e2cd3f..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_PERIOD_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4_period sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_PERIOD_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_PERIOD_DIR}/grib2_section4_period_default_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_PERIOD_DIR}/grib2_section4_period_custom_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_PERIOD_DIR}/grib2_section4_period_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_PERIOD_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_PERIOD_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_PERIOD_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/grib2_section4_period_custom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/grib2_section4_period_custom_mod.F90 deleted file mode 100644 index 8e3885da1..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/grib2_section4_period_custom_mod.F90 +++ /dev/null @@ -1,995 +0,0 @@ -!> -!> @file grib2_section4_period_custom_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_PERIOD_CUSTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_PERIOD_CUSTOM_INIT -!> - @see GRIB2_SECTION4_PERIOD_CUSTOM_ALLOCATE -!> - @see GRIB2_SECTION4_PERIOD_CUSTOM_PRESET -!> - @see GRIB2_SECTION4_PERIOD_CUSTOM_RUNTIME -!> - @see GRIB2_SECTION4_PERIOD_CUSTOM_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_PERIOD_CUSTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_period_custom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_PERIOD_CUSTOM_MOD' -MODULE GRIB2_SECTION4_PERIOD_CUSTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_PERIOD_CUSTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_PERIOD_CUSTOM_T - - !> Default symbols visibility - PRIVATE - - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_PERIOD_CUSTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_PERIOD_CUSTOM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_PERIOD_CUSTOM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_PERIOD_CUSTOM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_PERIOD_CUSTOM_FREE - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: READ_FROM_CFG => GRIB2_SECTION4_PERIOD_READ_FROM_CFG - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_PERIOD_CUSTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_PERIOD_CUSTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_INIT -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_PRESET -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_CUSTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_CUSTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'DIRECTION-FREQUENCY' - THIS%KIND_ = 'CUSTOM' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ) THIS%READ_FROM_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_CUSTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PERIOD_CUSTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_INIT -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_PRESET -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_CUSTOM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_CUSTOM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_CUSTOM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PERIOD_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_PRESET -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_INIT -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_CUSTOM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_CUSTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_CUSTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PERIOD_CUSTOM_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_INIT -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_PRESET -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_CUSTOM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_CUSTOM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_CUSTOM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_PERIOD_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_INIT -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_PRESET -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_CUSTOM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_CUSTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_CUSTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Read the configuration parameters of this class from a CFG -!> -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_PERIOD_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] CFG The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_INIT -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_PRESET -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_PERIOD_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_READ_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_READ_FROM_CFG( THIS, CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TYPE_OF_PERIOD_FORECAST - LOGICAL :: HAS_PERTURBATION_NUMBER - LOGICAL :: HAS_NUMBER_OF_FORECASTS_IN_PERIOD - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TYPE_OF_PERIOD_FORECAST_NOT_PRESENT=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERTURBATION_NUMBER_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NUMBER_OF_FORECASTS_IN_PERIOD_NOT_PRESENT=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_READ_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_PERIOD_CUSTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/grib2_section4_period_default_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/grib2_section4_period_default_mod.F90 deleted file mode 100644 index 2bcafa958..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/grib2_section4_period_default_mod.F90 +++ /dev/null @@ -1,1011 +0,0 @@ -!> -!> @file grib2_section4_period_default_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_PERIOD_DEFAULT_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_PERIOD_DEFAULT_INIT -!> - @see GRIB2_SECTION4_PERIOD_DEFAULT_ALLOCATE -!> - @see GRIB2_SECTION4_PERIOD_DEFAULT_PRESET -!> - @see GRIB2_SECTION4_PERIOD_DEFAULT_RUNTIME -!> - @see GRIB2_SECTION4_PERIOD_DEFAULT_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_PERIOD_DEFAULT_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_period_default_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_PERIOD_DEFAULT_MOD' -MODULE GRIB2_SECTION4_PERIOD_DEFAULT_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_PERIOD_DEFAULT_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_PERIOD_DEFAULT_T - - !> Default symbols visibility - PRIVATE - - !> Scaled factors for wave direction - INTEGER(KIND=JPIB_K) :: SCALE_FACTOR_OF_WAVE_DIRECTIONS_=2_JPIB_K - - !> Scaled factors for wave frequencies - INTEGER(KIND=JPIB_K) :: SCALE_FACTOR_OF_WAVE_FREQUENCIES_=6_JPIB_K - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_PERIOD_DEFAULT_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_PERIOD_DEFAULT_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_PERIOD_DEFAULT_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_PERIOD_DEFAULT_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_PERIOD_DEFAULT_FREE - - !> - !> @brief Read resources allocated for the GRIB2 Section 4 time configuration object. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: READ_FROM_CFG => GRIB2_SECTION4_PERIOD_READ_FROM_CFG - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_PERIOD_DEFAULT_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_PERIOD_DEFAULT_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_INIT -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_PRESET -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_DEFAULT_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_DEFAULT_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'DIRECTION-FREQUENCY' - THIS%KIND_ = 'DEFAULT' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ) THIS%READ_FROM_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_DEFAULT_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PERIOD_DEFAULT_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_INIT -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_PRESET -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_DEFAULT_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_DEFAULT_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_DEFAULT_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PERIOD_DEFAULT_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_PRESET -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_INIT -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_DEFAULT_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_DEFAULT_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: ITMIN - INTEGER(KIND=JPIB_K) :: ITMAX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Extract ITMIN and ITMAX - ITMIN = PAR%WAVE%ITMIN - ITMAX = PAR%WAVE%ITMAX - - ! Logic to preset the wave parameters - IF ( ITMIN .GE. 0 .AND. ITMAX .GE. 0 ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfWavePeriodInterval', 7_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfLowerWavePeriodLimit', 0_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfLowerWavePeriodLimit', ITMIN) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfUpperWavePeriodLimit', 0_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfUpperWavePeriodLimit', ITMAX) - ELSEIF ( ITMIN .GE. 0 ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfWavePeriodInterval', 3_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfLowerWavePeriodLimit', 0_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfLowerWavePeriodLimit', ITMIN ) - ELSEIF ( ITMAX .GE. 0 ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfWavePeriodInterval', 4_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfUpperWavePeriodLimit', 0_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfUpperWavePeriodLimit', ITMAX ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_DEFAULT_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_PERIOD_DEFAULT_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_INIT -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_PRESET -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_DEFAULT_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_DEFAULT_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_DEFAULT_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_PERIOD_DEFAULT_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_INIT -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_PRESET -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_PERIOD_DEFAULT_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_DEFAULT_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_DEFAULT_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_DEFAULT_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_PERIOD_READ_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_PERIOD_READ_FROM_CFG( THIS, CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_PERIOD_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_SCALE_FACTOR_OF_WAVE_DIRECTIONS - LOGICAL :: HAS_SCALE_FACTOR_OF_WAVE_FREQUENCIES - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, & -& 'scale-factor-of-wave-directions', HAS_SCALE_FACTOR_OF_WAVE_DIRECTIONS, HOOKS ) - - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, & -& 'scale-factor-of-wave-frequencies', HAS_SCALE_FACTOR_OF_WAVE_FREQUENCIES, HOOKS ) - - !> Read the encoder configuration - IF ( HAS_SCALE_FACTOR_OF_WAVE_DIRECTIONS ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, & -& 'scale-factor-of-wave-directions', THIS%SCALE_FACTOR_OF_WAVE_DIRECTIONS_, HOOKS ) - ELSE - THIS%SCALE_FACTOR_OF_WAVE_DIRECTIONS_ = 2_JPIB_K - ENDIF - - IF ( HAS_SCALE_FACTOR_OF_WAVE_FREQUENCIES ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, & -& 'scale-factor-of-wave-frequencies', THIS%SCALE_FACTOR_OF_WAVE_FREQUENCIES_, HOOKS ) - ELSE - THIS%SCALE_FACTOR_OF_WAVE_DIRECTIONS_ = 6_JPIB_K - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_CFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_PERIOD_READ_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_PERIOD_DEFAULT_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/grib2_section4_period_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/grib2_section4_period_factory_mod.F90 deleted file mode 100644 index 34da14d16..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-period-configurator/grib2_section4_period_factory_mod.F90 +++ /dev/null @@ -1,587 +0,0 @@ -!> -!> @file grib2_section4_period_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> The `GRIB2_SECTION4_PERIOD_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Param Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_PERIOD_CONFIGURATOR_000_MOD::GRIB2_PERIOD_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_period_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_PERIOD_FACTORY_MOD' -MODULE GRIB2_SECTION4_PERIOD_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the period_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: PERIOD_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_PERIOD_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_PERIOD_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_PERIOD_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_PERIOD_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Param Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_PERIOD_CONFIGURATOR_000_T`) -!> to the `GRIB2_PERIOD_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_PERIOD_CONFIGURATOR The GRIB2 Param Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Param Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_PERIOD_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_PERIOD_CONFIGURATOR_000_MOD::GRIB2_PERIOD_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_PERIOD_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_PERIOD_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_PERIOD_CONFIGURATOR_CFG( GRIB2_PERIOD_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_PERIOD_DEFAULT_MOD, ONLY: GRIB2_SECTION4_PERIOD_DEFAULT_T - USE :: GRIB2_SECTION4_PERIOD_CUSTOM_MOD, ONLY: GRIB2_SECTION4_PERIOD_CUSTOM_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_PERIOD_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_PERIOD_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_PERIOD_DEFAULT_T::GRIB2_PERIOD_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION4_PERIOD_CUSTOM_T::GRIB2_PERIOD_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_PERIOD_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get period_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown period_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating period_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing period_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_PERIOD_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Param Configurator structure. -!> -!> This function takes a GRIB2 Param Configurator object (`GRIB2_PERIOD_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_PERIOD_CONFIGURATOR The GRIB2 Param Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_PERIOD_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_PERIOD_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_PERIOD_CONFIGURATOR( GRIB2_PERIOD_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_PERIOD_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_PERIOD_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_PERIOD_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_PERIOD_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating period_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing period_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_PERIOD_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Param Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [out] PERIOD_CONFIGURATOR_TYPE Identifier of the period_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_PERIOD_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_PERIOD_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_PERIOD_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, PERIOD_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: PERIOD_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CPERIOD_CONFIGURATOR_TYPE - LOGICAL :: HAS_PERIOD_CONFIGURATOR - LOGICAL :: PERIOD_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - PERIOD_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the PERIOD_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, PERIOD_CONFIGURATOR_KEY, HAS_PERIOD_CONFIGURATOR, HOOKS ) - - !> Read the PERIOD_CONFIGURATOR template number - IF ( HAS_PERIOD_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, PERIOD_CONFIGURATOR_KEY, CPERIOD_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CPERIOD_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CPERIOD_CONFIGURATOR_TYPE, PERIOD_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( PERIOD_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CPERIOD_CONFIGURATOR_TYPE, PERIOD_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CPERIOD_CONFIGURATOR_TYPE) - CASE ( 'default' ) - PERIOD_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ( 'custom' ) - PERIOD_CONFIGURATOR_TYPE = 1_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CPERIOD_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'PERIOD_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating PERIOD_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_PERIOD_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_PERIOD_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/CMakeLists.txt deleted file mode 100644 index 211b2f58b..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_POINT_IN_TIME_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4_point_in_time sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_POINT_IN_TIME_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_POINT_IN_TIME_DIR}/grib2_section4_point_in_time_default_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_POINT_IN_TIME_DIR}/grib2_section4_point_in_time_custom_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_POINT_IN_TIME_DIR}/grib2_section4_point_in_time_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_POINT_IN_TIME_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_POINT_IN_TIME_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_POINT_IN_TIME_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/grib2_section4_point_in_time_custom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/grib2_section4_point_in_time_custom_mod.F90 deleted file mode 100644 index 26c3b2380..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/grib2_section4_point_in_time_custom_mod.F90 +++ /dev/null @@ -1,875 +0,0 @@ -!> -!> @file grib2_section4_point_in_time_custom_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_INIT -!> - @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_ALLOCATE -!> - @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_PRESET -!> - @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_RUNTIME -!> - @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_point_in_time_custom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_MOD' -MODULE GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_INIT -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_PRESET -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'POINT-IN-TIME' - THIS%KIND_ = 'CUSTOM' - - ! Not implemented - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'configurator not implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_INIT -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_PRESET -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=2_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Configurator not implemented - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'configurator not implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_PRESET -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_INIT -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Configurator not implemented - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'configurator not implemented' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_INIT -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_PRESET -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Configurator not implemented - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'configurator not implemented' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_INIT -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_PRESET -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Configurator not implemented - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'configurator not implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/grib2_section4_point_in_time_default_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/grib2_section4_point_in_time_default_mod.F90 deleted file mode 100644 index 5fbc3dfb2..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/grib2_section4_point_in_time_default_mod.F90 +++ /dev/null @@ -1,1042 +0,0 @@ -!> -!> @file grib2_section4_point_in_time_default_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_POINT_IN_TIME_DEFAULT_INIT -!> - @see G2S4_POINT_IN_TIME_DEFAULT_ALLOCATE -!> - @see G2S4_POINT_IN_TIME_DEFAULT_PRESET -!> - @see G2S4_POINT_IN_TIME_DEFAULT_RUNTIME -!> - @see G2S4_POINT_IN_TIME_DEFAULT_T -!> - @see G2S4_POINT_IN_TIME_DEFAULT_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_point_in_time_default_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_MOD' -MODULE GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T - - !> Default symbols visibility - PRIVATE - - !> Logical - LOGICAL :: ENCODE_STEP_ZERO_ = .TRUE. - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_POINT_IN_TIME_DEFAULT_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_POINT_IN_TIME_DEFAULT_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_POINT_IN_TIME_DEFAULT_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_POINT_IN_TIME_DEFAULT_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_POINT_IN_TIME_DEFAULT_FREE - - !> - !> @brief Print the configuration of the current object. - !> - !> This procedure print the configuration of the current object - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => G2S4_POINT_IN_TIME_DEFAULT_PRINT - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_POINT_IN_TIME_DEFAULT_INIT -!> @see G2S4_POINT_IN_TIME_DEFAULT_ALLOCATE -!> @see G2S4_POINT_IN_TIME_DEFAULT_PRESET -!> @see G2S4_POINT_IN_TIME_DEFAULT_RUNTIME -!> @see G2S4_POINT_IN_TIME_DEFAULT_T -!> @see G2S4_POINT_IN_TIME_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POINT_IN_TIME_DEFAULT_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_POINT_IN_TIME_DEFAULT_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_LOGICAL - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_EMIT_STEP_ZERO - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'POINT-IN-TIME' - THIS%KIND_ = 'DEFAULT' - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'emit-step-zero', HAS_EMIT_STEP_ZERO, HOOKS ) - - ! Set the flag - IF (HAS_EMIT_STEP_ZERO) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_LOGICAL( CFG, 'emit-step-zero', THIS%ENCODE_STEP_ZERO_, HOOKS ) - ELSE - THIS%ENCODE_STEP_ZERO_ = .FALSE. - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POINT_IN_TIME_DEFAULT_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_POINT_IN_TIME_DEFAULT_ALLOCATE -!> @see G2S4_POINT_IN_TIME_DEFAULT_INIT -!> @see G2S4_POINT_IN_TIME_DEFAULT_PRESET -!> @see G2S4_POINT_IN_TIME_DEFAULT_RUNTIME -!> @see G2S4_POINT_IN_TIME_DEFAULT_T -!> @see G2S4_POINT_IN_TIME_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POINT_IN_TIME_DEFAULT_ALLOCATE' -PP_THREAD_SAFE FUNCTION G2S4_POINT_IN_TIME_DEFAULT_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Initialise the section - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'hoursAfterDataCutoff' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'minutesAfterDataCutoff' ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POINT_IN_TIME_DEFAULT_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_POINT_IN_TIME_DEFAULT_PRESET -!> @see G2S4_POINT_IN_TIME_DEFAULT_ALLOCATE -!> @see G2S4_POINT_IN_TIME_DEFAULT_INIT -!> @see G2S4_POINT_IN_TIME_DEFAULT_RUNTIME -!> @see G2S4_POINT_IN_TIME_DEFAULT_T -!> @see G2S4_POINT_IN_TIME_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POINT_IN_TIME_DEFAULT_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_POINT_IN_TIME_DEFAULT_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - !> Preset everything that can be preset - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitOfTimeRange', 'h' ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POINT_IN_TIME_DEFAULT_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_POINT_IN_TIME_DEFAULT_RUNTIME -!> @see G2S4_POINT_IN_TIME_DEFAULT_ALLOCATE -!> @see G2S4_POINT_IN_TIME_DEFAULT_INIT -!> @see G2S4_POINT_IN_TIME_DEFAULT_PRESET -!> @see G2S4_POINT_IN_TIME_DEFAULT_T -!> @see G2S4_POINT_IN_TIME_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POINT_IN_TIME_DEFAULT_RUNTIME' -PP_THREAD_SAFE FUNCTION G2S4_POINT_IN_TIME_DEFAULT_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: DATETIME_UTILS_MOD, ONLY: HOURS2SECONDS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: ISEC - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_TIME=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Compute current time (Part of effort to move away from time history since now in mars there is the timespan keyword) - !! ISEC = MSG%STEP*PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_ + MSG%STEP*PAR%TIME%INITIAL_STEP_ * HOURS2SECONDS - - ! Error handling - !! PP_DEBUG_CRITICAL_COND_THROW( MOD(ISEC,HOURS2SECONDS) .NE. 0, ERRFLAG_WRONG_TIME ) - - ! Set the forecast time - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'step', MSG%STEP ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - INTEGER(KIND=JPIB_K) :: WSTAT - CHARACTER(LEN=32) :: CSTEP - CHARACTER(LEN=32) :: CLENGTH_OF_TIMESTEP - CHARACTER(LEN=32) :: CINITIAL_STEP - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_WRONG_TIME ) - CSTEP = REPEAT( ' ', 32 ) - CLENGTH_OF_TIMESTEP = REPEAT( ' ', 32 ) - CINITIAL_STEP = REPEAT( ' ', 32 ) - WRITE(CSTEP, '(I32)', IOSTAT=WSTAT) MSG%STEP - WRITE(CLENGTH_OF_TIMESTEP, '(I32)', IOSTAT=WSTAT) PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_ - WRITE(CINITIAL_STEP, '(I32)', IOSTAT=WSTAT) PAR%TIME%INITIAL_STEP_ - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time is expected to be multiple of hours' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'current step: '//TRIM(CSTEP) ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'length of time step: '//TRIM(CLENGTH_OF_TIMESTEP) ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'initial step: '//TRIM(CINITIAL_STEP) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POINT_IN_TIME_DEFAULT_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_POINT_IN_TIME_DEFAULT_INIT -!> @see G2S4_POINT_IN_TIME_DEFAULT_ALLOCATE -!> @see G2S4_POINT_IN_TIME_DEFAULT_PRESET -!> @see G2S4_POINT_IN_TIME_DEFAULT_RUNTIME -!> @see G2S4_POINT_IN_TIME_DEFAULT_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POINT_IN_TIME_DEFAULT_FREE' -PP_THREAD_SAFE FUNCTION G2S4_POINT_IN_TIME_DEFAULT_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POINT_IN_TIME_DEFAULT_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_POINT_IN_TIME_DEFAULT_PRINT' -PP_THREAD_SAFE FUNCTION G2S4_POINT_IN_TIME_DEFAULT_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - WRITE(UNIT,'(A,A,L)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET+2),'OPTION::EMIT_STEP_ZERO :: ', THIS%ENCODE_STEP_ZERO_ - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_POINT_IN_TIME_DEFAULT_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/grib2_section4_point_in_time_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/grib2_section4_point_in_time_factory_mod.F90 deleted file mode 100644 index b9fef4d06..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-point-in-time-configurator/grib2_section4_point_in_time_factory_mod.F90 +++ /dev/null @@ -1,799 +0,0 @@ -!> -!> @file grib2_point_in_time_configurator_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 POINT_IN_TIME Configurator objects. -!> -!> The `GRIB2_POINT_IN_TIME_CONFIGURATOR_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 POINT_IN_TIME Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_POINT_IN_TIME_CONFIGURATOR_000_MOD::GRIB2_POINT_IN_TIME_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_point_in_time_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD' -MODULE GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the point_in_time_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: POINT_IN_TIME_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR_CFG - MODULE PROCEDURE MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR_LAZY -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 POINT_IN_TIME Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 POINT_IN_TIME Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_POINT_IN_TIME_CONFIGURATOR_000_T`) -!> to the `GRIB2_POINT_IN_TIME_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_POINT_IN_TIME_CONFIGURATOR The GRIB2 POINT_IN_TIME Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 POINT_IN_TIME Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 POINT_IN_TIME Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_POINT_IN_TIME_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_POINT_IN_TIME_CONFIGURATOR_000_MOD::GRIB2_POINT_IN_TIME_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_POINT_IN_TIME_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR_CFG( GRIB2_POINT_IN_TIME_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_MOD, ONLY: GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T - USE :: GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_MOD, ONLY: GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_POINT_IN_TIME_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_POINT_IN_TIME_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T::GRIB2_POINT_IN_TIME_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T::GRIB2_POINT_IN_TIME_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_POINT_IN_TIME_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown point_in_time_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating point_in_time_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing point_in_time_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to read point_in_time_configurator type' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - WRITE(*,*) 'ERROR FACTORY: ', ERRIDX - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Factory function for creating or initializing GRIB2 Section 3 objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Section 3 object -!> based on the provided parameters. It assigns the proper type (`GRIB2_SECTION3_000_T`) -!> to the `GRIB2_SECTION3` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_SECTION3 The GRIB2 Section 3 object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_SECTION3_040_T` -!> - `GRIB2_SECTION3_050_T` -!> - `GRIB2_SECTION3_101_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION0_040_MOD::GRIB2_SECTION0_040_T -!> - @dependency [TYPE] GRIB2_SECTION0_050_MOD::GRIB2_SECTION0_050_T -!> - @dependency [TYPE] GRIB2_SECTION0_101_MOD::GRIB2_SECTION0_101_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_040_T -!> @see GRIB2_SECTION3_050_T -!> @see GRIB2_SECTION3_101_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR_LAZY' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR_LAZY( GRIB2_POINT_IN_TIME_CONFIGURATOR, SEC4ID, & -& MSG, PAR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_MOD, ONLY: GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T - USE :: GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_MOD, ONLY: GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - -#if defined( PP_HAS_GET_GRIB2_POINT_IN_TIME_CONFIGURATOR_ID_FROM_MESSAGE ) - !> Symbols imported from the mapping module - USE :: MARS2GRIB_MAPPING_MOD, ONLY: GET_GRIB2_POINT_IN_TIME_CONFIGURATOR_ID_FROM_MESSAGE -#endif - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_POINT_IN_TIME_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_3=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - -#if defined( PP_HAS_GET_GRIB2_POINT_IN_TIME_CONFIGURATOR_ID_FROM_MESSAGE ) - - !> Get the section0 ID from the message - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) GET_GRIB2_POINT_IN_TIME_CONFIGURATOR_ID_FROM_MESSAGE( MSG, PAR, SEC4ID, OPT, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_POINT_IN_TIME_DEFAULT_T::GRIB2_POINT_IN_TIME_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION4_POINT_IN_TIME_CUSTOM_T::GRIB2_POINT_IN_TIME_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_POINT_IN_TIME_CONFIGURATOR%INIT( MST, PAR, OPT, HOOKS ) - -#endif - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get section3 ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_3) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown section3 number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section3 number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing section3 number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR_LAZY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 POINT_IN_TIME Configurator structure. -!> -!> This function takes a GRIB2 POINT_IN_TIME Configurator object (`GRIB2_POINT_IN_TIME_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_POINT_IN_TIME_CONFIGURATOR The GRIB2 POINT_IN_TIME Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( GRIB2_POINT_IN_TIME_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_POINT_IN_TIME_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_POINT_IN_TIME_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_POINT_IN_TIME_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_POINT_IN_TIME_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'point_in_time_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating point_in_time_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing point_in_time_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 POINT_IN_TIME Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 POINT_IN_TIME Configurator object. -!> @param [out] POINT_IN_TIME_CONFIGURATOR_TYPE Identifier of the point_in_time_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_POINT_IN_TIME_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_POINT_IN_TIME_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, POINT_IN_TIME_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: POINT_IN_TIME_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CPOINT_IN_TIME_CONFIGURATOR_TYPE - LOGICAL :: HAS_POINT_IN_TIME_CONFIGURATOR - LOGICAL :: POINT_IN_TIME_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - POINT_IN_TIME_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the POINT_IN_TIME_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, POINT_IN_TIME_CONFIGURATOR_KEY, HAS_POINT_IN_TIME_CONFIGURATOR, HOOKS ) - - !> Read the POINT_IN_TIME_CONFIGURATOR template number - IF ( HAS_POINT_IN_TIME_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, POINT_IN_TIME_CONFIGURATOR_KEY, CPOINT_IN_TIME_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CPOINT_IN_TIME_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CPOINT_IN_TIME_CONFIGURATOR_TYPE, POINT_IN_TIME_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( POINT_IN_TIME_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CPOINT_IN_TIME_CONFIGURATOR_TYPE, POINT_IN_TIME_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CPOINT_IN_TIME_CONFIGURATOR_TYPE) - CASE ( 'default' ) - POINT_IN_TIME_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ( 'custom' ) - POINT_IN_TIME_CONFIGURATOR_TYPE = 1_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CPOINT_IN_TIME_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'POINT_IN_TIME_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating POINT_IN_TIME_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_POINT_IN_TIME_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-random-patterns-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-random-patterns-configurator/CMakeLists.txt deleted file mode 100644 index 8f145ecc1..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-random-patterns-configurator/CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_RANDOM_PATTERNS_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4_random_patterns sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_RANDOM_PATTERNS_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_RANDOM_PATTERNS_DIR}/grib2_section4_random_patterns_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_RANDOM_PATTERNS_DIR}/grib2_section4_random_patterns_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_RANDOM_PATTERNS_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_RANDOM_PATTERNS_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_RANDOM_PATTERNS_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-random-patterns-configurator/grib2_section4_random_patterns_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-random-patterns-configurator/grib2_section4_random_patterns_factory_mod.F90 deleted file mode 100644 index add15f53c..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-random-patterns-configurator/grib2_section4_random_patterns_factory_mod.F90 +++ /dev/null @@ -1,781 +0,0 @@ -!> -!> @file grib2_section4_random_patterns_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 RANDOM_PATTERNS Configurator objects. -!> -!> The `GRIB2_SECTION4_RANDOM_PATTERNS_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 RANDOM_PATTERNS Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_RANDOM_PATTERNS_CONFIGURATOR_000_MOD::GRIB2_RANDOM_PATTERNS_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_random_patterns_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_RANDOM_PATTERNS_FACTORY_MOD' -MODULE GRIB2_SECTION4_RANDOM_PATTERNS_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the random_patterns_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: RANDOM_PATTERNS_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_CFG - MODULE PROCEDURE MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_LAZY -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_RANDOM_PATTERNS_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 RANDOM_PATTERNS Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 RANDOM_PATTERNS Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_RANDOM_PATTERNS_CONFIGURATOR_000_T`) -!> to the `GRIB2_RANDOM_PATTERNS_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @random_patterns [inout] GRIB2_RANDOM_PATTERNS_CONFIGURATOR The GRIB2 RANDOM_PATTERNS Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @random_patterns [in] ID Integer identifier for the GRIB2 RANDOM_PATTERNS Configurator object. -!> @random_patterns [in] CFG YAML configuration object used to configure the GRIB2 RANDOM_PATTERNS Configurator object. -!> @random_patterns [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_RANDOM_PATTERNS_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_RANDOM_PATTERNS_CONFIGURATOR_000_MOD::GRIB2_RANDOM_PATTERNS_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_RANDOM_PATTERNS_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_CFG( GRIB2_RANDOM_PATTERNS_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_RANDOM_PATTERNS_MOD, ONLY: GRIB2_SECTION4_RANDOM_PATTERNS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_RANDOM_PATTERNS_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_RANDOM_PATTERNS_T::GRIB2_RANDOM_PATTERNS_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_RANDOM_PATTERNS_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get random_patterns_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown random_patterns_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating random_patterns_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing random_patterns_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief Factory function for creating or initializing GRIB2 Section 3 objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Section 3 object -!> based on the provided parameters. It assigns the proper type (`GRIB2_SECTION3_000_T`) -!> to the `GRIB2_SECTION3` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @random_patterns [inout] GRIB2_SECTION3 The GRIB2 Section 3 object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @random_patterns [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @random_patterns [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @random_patterns [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @random_patterns [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_SECTION3_040_T` -!> - `GRIB2_SECTION3_050_T` -!> - `GRIB2_SECTION3_101_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION0_040_MOD::GRIB2_SECTION0_040_T -!> - @dependency [TYPE] GRIB2_SECTION0_050_MOD::GRIB2_SECTION0_050_T -!> - @dependency [TYPE] GRIB2_SECTION0_101_MOD::GRIB2_SECTION0_101_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_040_T -!> @see GRIB2_SECTION3_050_T -!> @see GRIB2_SECTION3_101_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_LAZY' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_LAZY( GRIB2_RANDOM_PATTERNS_CONFIGURATOR, SEC4ID, & -& MSG, PAR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_RANDOM_PATTERNS_MOD, ONLY: GRIB2_SECTION4_RANDOM_PATTERNS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - -#if defined( PP_HAS_GET_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_ID_FROM_MESSAGE ) - !> Symbols imported from the mapping module - USE :: MARS2GRIB_MAPPING_MOD, ONLY: GET_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_ID_FROM_MESSAGE -#endif - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_RANDOM_PATTERNS_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_3=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - -#if defined( PP_HAS_GET_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_ID_FROM_MESSAGE ) - - !> Get the section0 ID from the message - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) GET_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_ID_FROM_MESSAGE( MSG, PAR, SEC4ID, OPT, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_RANDOM_PATTERNS_T::GRIB2_RANDOM_PATTERNS_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_RANDOM_PATTERNS_CONFIGURATOR%INIT( MSG, PAR, OPT, HOOKS ) - -#endif - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get section3 ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_3) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown section3 number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section3 number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing section3 number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_LAZY -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Destroys a GRIB2 RANDOM_PATTERNS Configurator structure. -!> -!> This function takes a GRIB2 RANDOM_PATTERNS Configurator object (`GRIB2_RANDOM_PATTERNS_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @random_patterns[in,out] GRIB2_RANDOM_PATTERNS_CONFIGURATOR The GRIB2 RANDOM_PATTERNS Configurator object to be destroyed. -!> The structure is modified in place. -!> @random_patterns [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_RANDOM_PATTERNS_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_RANDOM_PATTERNS_CONFIGURATOR( GRIB2_RANDOM_PATTERNS_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_RANDOM_PATTERNS_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_RANDOM_PATTERNS_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_RANDOM_PATTERNS_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_RANDOM_PATTERNS_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'random_patterns_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating random_patterns_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing random_patterns_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_RANDOM_PATTERNS_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 RANDOM_PATTERNS Configurator object. -!> -!> @section interface -!> @random_patterns [in] CFG YAML configuration object used to configure the GRIB2 RANDOM_PATTERNS Configurator object. -!> @random_patterns [out] RANDOM_PATTERNS_CONFIGURATOR_TYPE Identifier of the random_patterns_configurator type read from the configuration. -!> @random_patterns [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, RANDOM_PATTERNS_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: RANDOM_PATTERNS_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CRANDOM_PATTERNS_CONFIGURATOR_TYPE - LOGICAL :: HAS_RANDOM_PATTERNS_CONFIGURATOR - LOGICAL :: RANDOM_PATTERNS_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - RANDOM_PATTERNS_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the RANDOM_PATTERNS_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, RANDOM_PATTERNS_CONFIGURATOR_KEY, HAS_RANDOM_PATTERNS_CONFIGURATOR, HOOKS ) - - !> Read the RANDOM_PATTERNS_CONFIGURATOR template number - IF ( HAS_RANDOM_PATTERNS_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, RANDOM_PATTERNS_CONFIGURATOR_KEY, CRANDOM_PATTERNS_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CRANDOM_PATTERNS_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CRANDOM_PATTERNS_CONFIGURATOR_TYPE, RANDOM_PATTERNS_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( RANDOM_PATTERNS_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CRANDOM_PATTERNS_CONFIGURATOR_TYPE, RANDOM_PATTERNS_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CRANDOM_PATTERNS_CONFIGURATOR_TYPE) - CASE ( 'default' ) - RANDOM_PATTERNS_CONFIGURATOR_TYPE = 0_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CRANDOM_PATTERNS_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'RANDOM_PATTERNS_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating RANDOM_PATTERNS_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_RANDOM_PATTERNS_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_RANDOM_PATTERNS_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-random-patterns-configurator/grib2_section4_random_patterns_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-random-patterns-configurator/grib2_section4_random_patterns_mod.F90 deleted file mode 100644 index 473388aa2..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-random-patterns-configurator/grib2_section4_random_patterns_mod.F90 +++ /dev/null @@ -1,848 +0,0 @@ -!> -!> @file grib2_section4_random_patterns_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_RANDOM_PATTERNS_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_RANDOM_PATTERNS_INIT -!> - @see GRIB2_SECTION4_RANDOM_PATTERNS_ALLOCATE -!> - @see GRIB2_SECTION4_RANDOM_PATTERNS_PRESET -!> - @see GRIB2_SECTION4_RANDOM_PATTERNS_RUNTIME -!> - @see GRIB2_SECTION4_RANDOM_PATTERNS_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_RANDOM_PATTERNS_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_random_patterns_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_RANDOM_PATTERNS_MOD' -MODULE GRIB2_SECTION4_RANDOM_PATTERNS_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_RANDOM_PATTERNS_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_RANDOM_PATTERNS_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_RANDOM_PATTERNS_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_RANDOM_PATTERNS_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_RANDOM_PATTERNS_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_RANDOM_PATTERNS_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_RANDOM_PATTERNS_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_RANDOM_PATTERNS_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`RANDOM_PATTERNSS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @random_patterns [inout] THIS An object of type `GRIB2_SECTION4_RANDOM_PATTERNS_T` representing the GRIB section being initialized. -!> @random_patterns [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @random_patterns [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @random_patterns [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_INIT -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_ALLOCATE -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_PRESET -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_RUNTIME -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_TO_BE_ENCODED -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_RANDOM_PATTERNS_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_RANDOM_PATTERNS_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_RANDOM_PATTERNS_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'RANDOM_PATTERNS' - THIS%KIND_ = 'RANDOM_PATTERNS' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_RANDOM_PATTERNS_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`RANDOM_PATTERNSS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @random_patterns [in] THIS An object of type `GRIB2_SECTION4_RANDOM_PATTERNS_T` representing the GRIB section to allocate resources for. -!> @random_patterns [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @random_patterns [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @random_patterns [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @random_patterns [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @random_patterns [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_ALLOCATE -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_INIT -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_PRESET -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_RUNTIME -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_TO_BE_ENCODED -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_RANDOM_PATTERNS_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_RANDOM_PATTERNS_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_RANDOM_PATTERNS_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_RANDOM_PATTERNS_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`RANDOM_PATTERNSS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @random_patterns [in] THIS An object of type `GRIB2_SECTION4_RANDOM_PATTERNS_T` representing the GRIB section to be preset. -!> @random_patterns [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @random_patterns [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @random_patterns [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @random_patterns [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @random_patterns [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_PRESET -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_ALLOCATE -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_INIT -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_RUNTIME -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_TO_BE_ENCODED -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_RANDOM_PATTERNS_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_RANDOM_PATTERNS_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_RANDOM_PATTERNS_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! TODO handle random patterns... - ! IF ( MSG%??? .NE. UNDEF_PARAM_E ) THEN - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, '???', MSG%???) - ! ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_RANDOM_PATTERNS_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`RANDOM_PATTERNSS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @random_patterns [in] THIS An object of type `GRIB2_SECTION4_RANDOM_PATTERNS_T` representing the GRIB section for runtime execution. -!> @random_patterns [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @random_patterns [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @random_patterns [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @random_patterns [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @random_patterns [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @random_patterns [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @random_patterns [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_RUNTIME -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_ALLOCATE -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_INIT -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_PRESET -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_TO_BE_ENCODED -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_RANDOM_PATTERNS_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_RANDOM_PATTERNS_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_RANDOM_PATTERNS_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_RANDOM_PATTERNS_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @random_patterns [inout] THIS An object of type `GRIB2_SECTION4_RANDOM_PATTERNS_T` representing the GRIB section to be freed. -!> @random_patterns [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @random_patterns [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_INIT -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_ALLOCATE -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_PRESET -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_RUNTIME -!> @see GRIB2_SECTION4_RANDOM_PATTERNS_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_RANDOM_PATTERNS_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_RANDOM_PATTERNS_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_RANDOM_PATTERNS_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_RANDOM_PATTERNS_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_RANDOM_PATTERNS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/CMakeLists.txt deleted file mode 100644 index f5bcec56a..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_SATELLITE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4_satellite sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_SATELLITE_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_SATELLITE_DIR}/grib2_section4_satellite_default_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_SATELLITE_DIR}/grib2_section4_satellite_custom_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_SATELLITE_DIR}/grib2_section4_satellite_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_SATELLITE_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_SATELLITE_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_SATELLITE_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/grib2_section4_satellite_custom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/grib2_section4_satellite_custom_mod.F90 deleted file mode 100644 index 70baefe82..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/grib2_section4_satellite_custom_mod.F90 +++ /dev/null @@ -1,993 +0,0 @@ -!> -!> @file grib2_section4_satellite_custom_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_SATELLITE_CUSTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_SATELLITE_CUSTOM_INIT -!> - @see GRIB2_SECTION4_SATELLITE_CUSTOM_ALLOCATE -!> - @see GRIB2_SECTION4_SATELLITE_CUSTOM_PRESET -!> - @see GRIB2_SECTION4_SATELLITE_CUSTOM_RUNTIME -!> - @see GRIB2_SECTION4_SATELLITE_CUSTOM_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_SATELLITE_CUSTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_satellite_custom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_SATELLITE_CUSTOM_MOD' -MODULE GRIB2_SECTION4_SATELLITE_CUSTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_SATELLITE_CUSTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_SATELLITE_CUSTOM_T - - !> Default symbols visibility - PRIVATE - - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_SATELLITE_CUSTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_SATELLITE_CUSTOM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_SATELLITE_CUSTOM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_SATELLITE_CUSTOM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_SATELLITE_CUSTOM_FREE - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: READ_FROM_CFG => GRIB2_SECTION4_SATELLITE_READ_FROM_CFG - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_SATELLITE_CUSTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SATELLITE_CUSTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_INIT -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_SATELLITE_CUSTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_SATELLITE_CUSTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SATELLITE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'SATELLITE' - THIS%KIND_ = 'CUSTOM' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ) THIS%READ_FROM_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_SATELLITE_CUSTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SATELLITE_CUSTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_INIT -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_SATELLITE_CUSTOM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_SATELLITE_CUSTOM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SATELLITE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: IDX - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_SATELLITE_CUSTOM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SATELLITE_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_INIT -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_SATELLITE_CUSTOM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_SATELLITE_CUSTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SATELLITE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_SATELLITE_CUSTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SATELLITE_CUSTOM_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_INIT -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_SATELLITE_CUSTOM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_SATELLITE_CUSTOM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SATELLITE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_SATELLITE_CUSTOM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SATELLITE_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_INIT -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_SATELLITE_CUSTOM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_SATELLITE_CUSTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SATELLITE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_SATELLITE_CUSTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Read the configuration parameters of this class from a CFG -!> -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SATELLITE_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] CFG The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_INIT -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_PRESET -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_SATELLITE_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_SATELLITE_READ_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_SATELLITE_READ_FROM_CFG( THIS, CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SATELLITE_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TYPE_OF_SATELLITE_FORECAST - LOGICAL :: HAS_PERTURBATION_NUMBER - LOGICAL :: HAS_NUMBER_OF_FORECASTS_IN_SATELLITE - - !> Local error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TYPE_OF_SATELLITE_FORECAST_NOT_PRESENT=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERTURBATION_NUMBER_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NUMBER_OF_FORECASTS_IN_SATELLITE_NOT_PRESENT=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_SATELLITE_READ_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_SATELLITE_CUSTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/grib2_section4_satellite_default_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/grib2_section4_satellite_default_mod.F90 deleted file mode 100644 index 31ac0d137..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/grib2_section4_satellite_default_mod.F90 +++ /dev/null @@ -1,867 +0,0 @@ -!> -!> @file grib2_section4_satellite_default_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_SATELLITE_DEFAULT_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_SATELLITE_DEFAULT_INIT -!> - @see GRIB2_SECTION4_SATELLITE_DEFAULT_ALLOCATE -!> - @see GRIB2_SECTION4_SATELLITE_DEFAULT_PRESET -!> - @see GRIB2_SECTION4_SATELLITE_DEFAULT_RUNTIME -!> - @see GRIB2_SECTION4_SATELLITE_DEFAULT_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_SATELLITE_DEFAULT_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_satellite_default_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_SATELLITE_DEFAULT_MOD' -MODULE GRIB2_SECTION4_SATELLITE_DEFAULT_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_SATELLITE_DEFAULT_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_SATELLITE_DEFAULT_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_SATELLITE_DEFAULT_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_SATELLITE_DEFAULT_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_SATELLITE_DEFAULT_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_SATELLITE_DEFAULT_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_SATELLITE_DEFAULT_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_SATELLITE_DEFAULT_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SATELLITE_DEFAULT_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_INIT -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_PRESET -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_SATELLITE_DEFAULT_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_SATELLITE_DEFAULT_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SATELLITE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'SATELLITE' - THIS%KIND_ = 'DEFAULT' - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_SATELLITE_DEFAULT_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SATELLITE_DEFAULT_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_INIT -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_PRESET -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_SATELLITE_DEFAULT_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_SATELLITE_DEFAULT_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: CONSTANTS_MOD, ONLY: RAD2DEG - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SATELLITE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - !> Set metadata for allocation of satellite images (NB in grib header) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfContributingSpectralBands', 1_JPIB_K ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_SATELLITE_DEFAULT_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SATELLITE_DEFAULT_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_PRESET -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_INIT -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_SATELLITE_DEFAULT_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_SATELLITE_DEFAULT_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: OPT_CACHE_FULL_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SATELLITE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - !> Preset the metadata for the satellite image - IF ( OPT%ENABLE_CACHE .AND. OPT%CACHE_SATELLITES_INFO ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'satelliteSeries', PAR%SATELLITE%SATELLITE_SERIES ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'satelliteNumber', MSG%IDENT ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'instrumentType', MSG%INSTRUMENT ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfCentralWaveNumber', PAR%SATELLITE%SCALED_FACTOR_OF_CENTRAL_VAWENUMBER ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfCentralWaveNumber', PAR%SATELLITE%SCALED_VALUE_OF_CENTRAL_VAWENUMBER ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_SATELLITE_DEFAULT_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_SATELLITE_DEFAULT_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_INIT -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_PRESET -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_TO_BE_ENCODED -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_SATELLITE_DEFAULT_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_SATELLITE_DEFAULT_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SATELLITE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - !> Preset the metadata for the satellite image - IF ( .NOT.OPT%ENABLE_CACHE .OR. .NOT.OPT%CACHE_SATELLITES_INFO ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'satelliteSeries', PAR%SATELLITE%SATELLITE_SERIES ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'satelliteNumber', MSG%IDENT ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'instrumentType', MSG%INSTRUMENT ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaleFactorOfCentralWaveNumber', PAR%SATELLITE%SCALED_FACTOR_OF_CENTRAL_VAWENUMBER ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'scaledValueOfCentralWaveNumber', PAR%SATELLITE%SCALED_VALUE_OF_CENTRAL_VAWENUMBER ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_SATELLITE_DEFAULT_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_SATELLITE_DEFAULT_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_INIT -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_ALLOCATE -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_PRESET -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_RUNTIME -!> @see GRIB2_SECTION4_SATELLITE_DEFAULT_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_SATELLITE_DEFAULT_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_SATELLITE_DEFAULT_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_SATELLITE_DEFAULT_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_SATELLITE_DEFAULT_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_SATELLITE_DEFAULT_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/grib2_section4_satellite_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/grib2_section4_satellite_factory_mod.F90 deleted file mode 100644 index 406cff4eb..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-satellite-configurator/grib2_section4_satellite_factory_mod.F90 +++ /dev/null @@ -1,587 +0,0 @@ -!> -!> @file grib2_section4_satellite_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> The `GRIB2_SECTION4_SATELLITE_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Param Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SATELLITE_CONFIGURATOR_000_MOD::GRIB2_SATELLITE_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_satellite_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_SATELLITE_FACTORY_MOD' -MODULE GRIB2_SECTION4_SATELLITE_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the satellite_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: SATELLITE_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_SATELLITE_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_SATELLITE_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_SATELLITE_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_SATELLITE_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Param Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Param Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_SATELLITE_CONFIGURATOR_000_T`) -!> to the `GRIB2_SATELLITE_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_SATELLITE_CONFIGURATOR The GRIB2 Param Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Param Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_SATELLITE_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SATELLITE_CONFIGURATOR_000_MOD::GRIB2_SATELLITE_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SATELLITE_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_SATELLITE_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_SATELLITE_CONFIGURATOR_CFG( GRIB2_SATELLITE_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_SATELLITE_DEFAULT_MOD, ONLY: GRIB2_SECTION4_SATELLITE_DEFAULT_T - USE :: GRIB2_SECTION4_SATELLITE_CUSTOM_MOD, ONLY: GRIB2_SECTION4_SATELLITE_CUSTOM_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SATELLITE_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_SATELLITE_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_SATELLITE_DEFAULT_T::GRIB2_SATELLITE_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION4_SATELLITE_CUSTOM_T::GRIB2_SATELLITE_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_SATELLITE_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to get satellite_configurator ID' ) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown satellite_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating satellite_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing satellite_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_SATELLITE_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Param Configurator structure. -!> -!> This function takes a GRIB2 Param Configurator object (`GRIB2_SATELLITE_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_SATELLITE_CONFIGURATOR The GRIB2 Param Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SATELLITE_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_SATELLITE_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_SATELLITE_CONFIGURATOR( GRIB2_SATELLITE_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SATELLITE_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_SATELLITE_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_SATELLITE_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_SATELLITE_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating satellite_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing satellite_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_SATELLITE_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Param Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Param Configurator object. -!> @param [out] SATELLITE_CONFIGURATOR_TYPE Identifier of the satellite_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SATELLITE_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_SATELLITE_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_SATELLITE_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, SATELLITE_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: SATELLITE_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CSATELLITE_CONFIGURATOR_TYPE - LOGICAL :: HAS_SATELLITE_CONFIGURATOR - LOGICAL :: SATELLITE_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - SATELLITE_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the SATELLITE_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, SATELLITE_CONFIGURATOR_KEY, HAS_SATELLITE_CONFIGURATOR, HOOKS ) - - !> Read the SATELLITE_CONFIGURATOR template number - IF ( HAS_SATELLITE_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, SATELLITE_CONFIGURATOR_KEY, CSATELLITE_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CSATELLITE_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CSATELLITE_CONFIGURATOR_TYPE, SATELLITE_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( SATELLITE_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CSATELLITE_CONFIGURATOR_TYPE, SATELLITE_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CSATELLITE_CONFIGURATOR_TYPE) - CASE ( 'default' ) - SATELLITE_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ( 'custom' ) - SATELLITE_CONFIGURATOR_TYPE = 1_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CSATELLITE_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SATELLITE_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating SATELLITE_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_SATELLITE_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_SATELLITE_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/CMakeLists.txt deleted file mode 100644 index 3dca698cf..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION4_STATISTICS_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section4_statistics sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_STATISTICS_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION4_STATISTICS_DIR}/grib2_section4_statistics_custom_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_STATISTICS_DIR}/grib2_section4_statistics_fixed_timerange_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_STATISTICS_DIR}/grib2_section4_statistics_since_beginning_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_STATISTICS_DIR}/grib2_section4_statistics_since_lastpp_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_STATISTICS_DIR}/grib2_section4_statistics_factory_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_STATISTICS_DIR}/grib2_section4_statistics_utils_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION4_STATISTICS_DIR}/grib2_section4_stattype_utils_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION4_STATISTICS_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION4_STATISTICS_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION4_STATISTICS_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_custom_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_custom_mod.F90 deleted file mode 100644 index 325b64814..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_custom_mod.F90 +++ /dev/null @@ -1,877 +0,0 @@ -!> -!> @file grib2_sECTION4_STATISTICS_CUSTOM_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_STATISTICS_CUSTOM_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_STATISTICS_CUSTOM_INIT -!> - @see GRIB2_SECTION4_STATISTICS_CUSTOM_ALLOCATE -!> - @see GRIB2_SECTION4_STATISTICS_CUSTOM_PRESET -!> - @see GRIB2_SECTION4_STATISTICS_CUSTOM_RUNTIME -!> - @see GRIB2_SECTION4_STATISTICS_CUSTOM_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_STATISTICS_CUSTOM_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_statistics_custom_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_STATISTICS_CUSTOM_MOD' -MODULE GRIB2_SECTION4_STATISTICS_CUSTOM_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_STATISTICS_CUSTOM_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_STATISTICS_CUSTOM_T - - !> Default symbols visibility - PRIVATE - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_STATISTICS_CUSTOM_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_STATISTICS_CUSTOM_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_STATISTICS_CUSTOM_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_STATISTICS_CUSTOM_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_STATISTICS_CUSTOM_FREE - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_STATISTICS_CUSTOM_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_CUSTOM_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_INIT -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_PRESET -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_CUSTOM_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_CUSTOM_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'TIME-STATISTICS' - THIS%KIND_ = 'CUSTOM' - - ! Not implemented - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'configurator not implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_CUSTOM_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_CUSTOM_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_INIT -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_PRESET -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_CUSTOM_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_CUSTOM_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Configurator not implemented - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'configurator not implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_CUSTOM_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_CUSTOM_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_PRESET -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_INIT -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_CUSTOM_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_CUSTOM_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Configurator not implemented - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'configurator not implemented' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_CUSTOM_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_CUSTOM_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_INIT -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_PRESET -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_CUSTOM_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_CUSTOM_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - ! Symbolds imported from intrinsic modules - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_DOUBLE - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Configurator not implemented - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'configurator not implemented' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_CUSTOM_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_CUSTOM_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_INIT -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_PRESET -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_CUSTOM_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_CUSTOM_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_CUSTOM_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_CUSTOM_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_IMPLEMENTED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Configurator not implemented - PP_DEBUG_CRITICAL_THROW( ERRFLAG_NOT_IMPLEMENTED ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_NOT_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'configurator not implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_CUSTOM_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_STATISTICS_CUSTOM_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_factory_mod.F90 deleted file mode 100644 index 7eb486855..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_factory_mod.F90 +++ /dev/null @@ -1,604 +0,0 @@ -!> -!> @file grib2_time_configurator_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Time Configurator objects. -!> -!> The `GRIB2_TIME_CONFIGURATOR_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Time Configurator objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_TIME_CONFIGURATOR_000_MOD::GRIB2_TIME_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_statistics_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_STATISTICS_FACTORY_MOD' -MODULE GRIB2_SECTION4_STATISTICS_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the time_configurator number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_KEY='type' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_TIME_CONFIGURATOR - MODULE PROCEDURE MAKE_GRIB2_TIME_CONFIGURATOR_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_TIME_CONFIGURATOR -PUBLIC :: DESTROY_GRIB2_TIME_CONFIGURATOR - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Time Configurator objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Time Configurator object -!> based on the provided parameters. It assigns the proper type (`GRIB2_TIME_CONFIGURATOR_000_T`) -!> to the `GRIB2_TIME_CONFIGURATOR` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_TIME_CONFIGURATOR The GRIB2 Time Configurator object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Time Configurator object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Time Configurator object. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_TIME_CONFIGURATOR_000_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_TIME_CONFIGURATOR_000_MOD::GRIB2_TIME_CONFIGURATOR_000_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_TIME_CONFIGURATOR_000_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_TIME_CONFIGURATOR_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_TIME_CONFIGURATOR_CFG( GRIB2_TIME_CONFIGURATOR, SEC4ID, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION4_STATISTICS_CUSTOM_MOD, ONLY: GRIB2_SECTION4_STATISTICS_CUSTOM_T - USE :: GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_MOD, ONLY: GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T - USE :: GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_MOD, ONLY: GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T - USE :: GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_MOD, ONLY: GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_TIME_CONFIGURATOR - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_0=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_TIME_CONFIGURATOR_TYPE_FROM_CFG( CFG, SEC4ID, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION4_STATISTICS_CUSTOM_T::GRIB2_TIME_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 1 ) - - ALLOCATE( GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T::GRIB2_TIME_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 2 ) - - ALLOCATE( GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T::GRIB2_TIME_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 3 ) - - ALLOCATE( GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T::GRIB2_TIME_CONFIGURATOR, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_0 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_TIME_CONFIGURATOR%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNKNOWN_SECTION_0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown time_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating time_configurator number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing time_configurator number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to read time_configurator type' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - WRITE(*,*) 'ERROR FACTORY: ', ERRIDX - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_TIME_CONFIGURATOR_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Time Configurator structure. -!> -!> This function takes a GRIB2 Time Configurator object (`GRIB2_TIME_CONFIGURATOR`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_TIME_CONFIGURATOR The GRIB2 Time Configurator object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_TIME_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_TIME_CONFIGURATOR' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_TIME_CONFIGURATOR( GRIB2_TIME_CONFIGURATOR, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_TIME_CONFIGURATOR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_TIME_CONFIGURATOR), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_TIME_CONFIGURATOR%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_TIME_CONFIGURATOR, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time_configurator to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating time_configurator number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing time_configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_TIME_CONFIGURATOR -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Time Configurator object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Time Configurator object. -!> @param [out] TIME_CONFIGURATOR_TYPE Identifier of the time_configurator type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_TIME_CONFIGURATOR -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_TIME_CONFIGURATOR_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_TIME_CONFIGURATOR_TYPE_FROM_CFG( CFG, & -& SEC4ID, TIME_CONFIGURATOR_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KINd=JPIB_K), INTENT(IN) :: SEC4ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: TIME_CONFIGURATOR_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CTIME_CONFIGURATOR_TYPE - LOGICAL :: HAS_TIME_CONFIGURATOR - LOGICAL :: TIME_CONFIGURATOR_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - TIME_CONFIGURATOR_TYPE = -1_JPIB_K - - !> Check if configuration has the TIME_CONFIGURATOR key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_KEY, HAS_TIME_CONFIGURATOR, HOOKS ) - - !> Read the TIME_CONFIGURATOR template number - IF ( HAS_TIME_CONFIGURATOR ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, TIME_CONFIGURATOR_KEY, CTIME_CONFIGURATOR_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CTIME_CONFIGURATOR_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CTIME_CONFIGURATOR_TYPE, TIME_CONFIGURATOR_IS_INTEGER, HOOKS ) - IF ( TIME_CONFIGURATOR_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CTIME_CONFIGURATOR_TYPE, TIME_CONFIGURATOR_TYPE, HOOKS ) - ELSE - SELECT CASE (CTIME_CONFIGURATOR_TYPE) - CASE ( 'custom' ) - TIME_CONFIGURATOR_TYPE = 0_JPIB_K - CASE ( 'fixed-timerange' ) - TIME_CONFIGURATOR_TYPE = 1_JPIB_K - CASE ( 'since-beginning-of-forecast' ) - TIME_CONFIGURATOR_TYPE = 2_JPIB_K - CASE ( 'since-last-post-processing-step' ) - TIME_CONFIGURATOR_TYPE = 3_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - END SELECT - ENDIF - DEALLOCATE(CTIME_CONFIGURATOR_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'TIME_CONFIGURATOR ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating TIME_CONFIGURATOR number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown statistics configurator: "'//TRIM(ADJUSTL(CTIME_CONFIGURATOR_TYPE))//'"' ) - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_TIME_CONFIGURATOR_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_STATISTICS_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_fixed_timerange_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_fixed_timerange_mod.F90 deleted file mode 100644 index 3465a5dc8..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_fixed_timerange_mod.F90 +++ /dev/null @@ -1,1541 +0,0 @@ -!> -!> @file grib2_sECTION4_STATISTICS_FIXED_TIMERANGE_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_INIT -!> - @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_ALLOCATE -!> - @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRESET -!> - @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_RUNTIME -!> - @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_statistics_fixed_timerange_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_MOD' -MODULE GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T - - !> Default symbols visibility - PRIVATE - - !> Type-specific fields - LOGICAL :: EMIT_STEP_ZERO_=.TRUE. - INTEGER(KIND=JPIB_K) :: NUMBER_OF_TIME_RANGES_ = 0_JPIB_K - INTEGER(KIND=JPIB_K), DIMENSION(:), ALLOCATABLE :: TYPE_OF_STATISTICAL_PROCESS_ - INTEGER(KIND=JPIB_K), DIMENSION(:), ALLOCATABLE :: OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_ - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_RUNTIME - - !> - !> @brief Prints the GRIB2 Section 4 time configuration object needs to be encoded. - !> - !> This procedure prints the object based on the provided parameters and internal state. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRINT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_FREE - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: READ_FROM_CFG => GRIB2_SECTION4_READ_FROM_CFG - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_INIT -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRESET -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'TIME-STATISTICS' - THIS%KIND_ = 'FIXED_TIMERANGE' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ) THIS%READ_FROM_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_INIT -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRESET -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CFG_NOT_ALLOCATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TO_BE_IMPLEMENTED=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(THIS%TYPE_OF_STATISTICAL_PROCESS_), ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_), ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.GT.1, ERRFLAG_TO_BE_IMPLEMENTED ) - - ! Allocate the time ranges - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfTimeRange', THIS%NUMBER_OF_TIME_RANGES_ ) - - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'hoursAfterDataCutoff' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'minutesAfterDataCutoff' ) - - !> Preset everything that can be preset - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfStatisticalProcessing', THIS%TYPE_OF_STATISTICAL_PROCESS_ ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitOfTimeRange', 'h' ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_CFG_NOT_ALLOCATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error configuration not allocated' ) - CASE (ERRFLAG_INVALID_CONFIGURATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid configuration' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TO_BE_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error to be implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRESET -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_INIT -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CFG_NOT_ALLOCATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TO_BE_IMPLEMENTED=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(THIS%TYPE_OF_STATISTICAL_PROCESS_), ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_), ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.GT.1, ERRFLAG_TO_BE_IMPLEMENTED ) - - !> Preset everything that can be preset - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfStatisticalProcessing', THIS%TYPE_OF_STATISTICAL_PROCESS_ ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitOfTimeRange', 'h' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitForTimeRange', 'h' ) - - !> @note See MUL-227 - IF ( PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_ .EQ. UNDEF_PARAM_E .OR. & ! lacks("lengthOfTimeStepInSeconds") -& PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_ .EQ. 0_JPIB_K ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfTimeIncrement', 2_JPIB_K ) ! Code Table 4.11 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitForTimeIncrement', 255_JPIB_K ) ! Code table 4.4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'timeIncrement', 0_JPIB_K ) ! default value - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfTimeIncrement', 2_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitForTimeIncrement', 's' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'timeIncrement', INT(PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_, KIND=JPIB_K) ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error configuration not allocated' ) - CASE ( ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid configuration' ) - CASE ( ERRFLAG_TO_BE_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error to be implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_INIT -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRESET -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_RUNTIME( THIS, & -& MSG, GEO, PAR,OPT, METADATA, HOOKS ) RESULT(RET) - - ! Symbolds imported from intrinsic modules - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_DOUBLE - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: TYPE_FC_E - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB2_SECTION4_STATISTICS_UTILS_MOD, ONLY: COMPUTE_TIME_SINCE_START - USE :: GRIB2_SECTION4_STATISTICS_UTILS_MOD, ONLY: SET_END_OF_TIME_INTERVAL - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K), DIMENSION(6) :: DATE_TIME - INTEGER(KIND=JPIB_K) :: TIME_SINCE_START - INTEGER(KIND=JPIB_K) :: FORECAST_TIME - INTEGER(KIND=JPIB_K) :: LOC_LENGTH_OF_TIME_RANGE - INTEGER(KIND=JPIM_K) :: KRET - REAL(KIND=C_DOUBLE) :: JDT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CFG_NOT_ALLOCATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_FIELD=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TO_BE_IMPLEMENTED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_TO_COMPUTE_END_OF_TIME_INTERVAL=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_COMPUTE_TIME_SINCE_START=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_FC=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_TIMERANGE=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(THIS%TYPE_OF_STATISTICAL_PROCESS_), ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_), ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.GT.1, ERRFLAG_TO_BE_IMPLEMENTED ) - ! Also FCMAX is allwed - ! PP_DEBUG_CRITICAL_COND_THROW( MSG%TYPE.NE.TYPE_FC_E, ERRFLAG_NO_FC ) - - ! Compute the current time - PP_TRYCALL(ERRFLAG_COMPUTE_TIME_SINCE_START) COMPUTE_TIME_SINCE_START( & -& MSG, PAR, OPT, TIME_SINCE_START, HOOKS ) - - ! Compute the forecast time - FORECAST_TIME = MAX(0,TIME_SINCE_START-THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(1)) - - !> Should be equal to the OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS, otherwise the field should not be encoded - LOC_LENGTH_OF_TIME_RANGE = TIME_SINCE_START - FORECAST_TIME - - !> Error handling - ! PP_DEBUG_CRITICAL_COND_THROW( LOC_LENGTH_OF_TIME_RANGE.NE.THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(1), ERRFLAG_INVALID_FIELD ) - ! PP_DEBUG_CRITICAL_COND_THROW( MSG%TIMESPAN.EQ.UNDEF_PARAM_E, ERRFLAG_EXPECTED_TIMESPAN ) -#if defined(ENABLE_CHECKS) - IF ( MSG%TIMESPAN.NE.UNDEF_PARAM_E ) THEN - PP_DEBUG_CRITICAL_COND_THROW( MSG%TIMESPAN.NE.THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(1)/3600, ERRFLAG_WRONG_TIMERANGE ) - ENDIF -#endif - - !> Set the current point in time for the current loop - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'forecastTime', FORECAST_TIME/3600 ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'lengthOfTimeRange', LOC_LENGTH_OF_TIME_RANGE/3600 ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'forecastTime', MSG%STEP ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'lengthOfTimeRange', MSG%TIMESPAN ) - - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'startStep', MAX(0_JPIB_K,MSG%STEP-MSG%TIMESPAN ) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'startStep', MAX(0_JPIB_K,MSG%STEP-THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(1)/3600 ) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'endStep', MSG%STEP ) - - ! Unpack date time -! PP_TRYCALL(ERRFLAG_UNABLE_TO_TO_COMPUTE_END_OF_TIME_INTERVAL) SET_END_OF_TIME_INTERVAL( MSG, PAR, & -! & TIME_SINCE_START, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - CHARACTER(LEN=32) :: CTMP1 - CHARACTER(LEN=32) :: CTMP2 - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_COMPUTE_TIME_SINCE_START ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute time since start' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_INVALID_FIELD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid field' ) - CASE ( ERRFLAG_UNABLE_TO_TO_COMPUTE_END_OF_TIME_INTERVAL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute end of time interval' ) - CASE ( ERRFLAG_NO_FC ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'no forecast time' ) - CASE ( ERRFLAG_WRONG_TIMERANGE ) - CTMP1 = REPEAT( ' ', 32 ) - WRITE( CTMP1, '(I32)' ) THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(1)/3600 - CTMP2 = REPEAT( ' ', 32 ) - WRITE( CTMP2, '(I32)' ) MSG%TIMESPAN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'wrong time range' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'got: '//TRIM(ADJUSTL(CTMP2)) ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'expected: '//TRIM(ADJUSTL(CTMP1)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: ENUMERATORS_MOD, ONLY: ITYPE_OF_STATISTICAL_PROCESS2CTYPE_OF_STATISTICAL_PROCESS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: I - INTEGER(KIND=JPIB_K) :: WRITE_STAT - INTEGER(KIND=JPIB_K) :: LOC_OFFSET - CHARACTER(LEN=32) :: CTMP - CHARACTER(LEN=16) :: CTYPE_OF_STATISTICAL_PROCESS - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENUM2STRING=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CFG_NOT_ALLOCATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(THIS%TYPE_OF_STATISTICAL_PROCESS_), ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_), ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), '(', & -& TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - LOC_OFFSET=OFFSET+2 - CTMP=REPEAT(' ',32) - WRITE(CTMP,*, IOSTAT=WRITE_STAT) THIS%NUMBER_OF_TIME_RANGES_ - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& 'NUMBER OF TIME RANGES: ', TRIM(ADJUSTL(CTMP)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& 'TIME RANGES: {' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - LOC_OFFSET=OFFSET+2 - - DO I = 1, THIS%NUMBER_OF_TIME_RANGES_ - CTMP=REPEAT(' ',32) - WRITE(CTMP,*, IOSTAT=WRITE_STAT) I - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - WRITE(UNIT,'(A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& '- TIME_RANGE[', TRIM(ADJUSTL(CTMP)), ']' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - PP_TRYCALL(ERRFLAG_ENUM2STRING) ITYPE_OF_STATISTICAL_PROCESS2CTYPE_OF_STATISTICAL_PROCESS( THIS%TYPE_OF_STATISTICAL_PROCESS_(I), CTYPE_OF_STATISTICAL_PROCESS, HOOKS ) - - WRITE(UNIT,'(A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& ' TYPE_OF_STATISTICAL_PROCESS: "', TRIM(ADJUSTL(CTYPE_OF_STATISTICAL_PROCESS)), '"' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - - CTMP=REPEAT(' ',32) - WRITE(CTMP,*, IOSTAT=WRITE_STAT) THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(I) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - WRITE(UNIT,'(A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& ' OVERALL_LENGTH_OF_TIMERANGE: ', TRIM(ADJUSTL(CTMP)), 's' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - - IF ( I .LT. THIS%NUMBER_OF_TIME_RANGES_ ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ENDDO - - - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_ENUM2STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting enum to string' ) - CASE (ERRFLAG_CFG_NOT_ALLOCATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error configuration not allocated' ) - CASE (ERRFLAG_INVALID_CONFIGURATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_INIT -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRESET -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOC=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Deallocate memory - THIS%NUMBER_OF_TIME_RANGES_ = UNDEF_PARAM_E - IF ( ALLOCATED(THIS%TYPE_OF_STATISTICAL_PROCESS_) ) THEN - DEALLOCATE( THIS%TYPE_OF_STATISTICAL_PROCESS_, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS .NE. 0, ERRFLAG_DEALLOC ) - END IF - - IF ( ALLOCATED(THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_) ) THEN - DEALLOCATE( THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS .NE. 0, ERRFLAG_DEALLOC ) - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DEALLOC ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating memory' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief REad the configuration parameters of this class from a CFG -!> -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T` representing the GRIB section to be freed. -!> @param [in] CFG The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_INIT -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_PRESET -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_READ_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_READ_FROM_CFG( THIS, CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATIONS - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_CONFIGURATIONS_SIZE - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_CONFIGURATION_BY_ID - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_LOGICAL - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER_WITH_FILTER - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATIONS - USE :: YAML_CORE_UTILS_MOD, ONLY: FUN_C2I_IF - USE :: ENUMERATORS_MOD, ONLY: CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB2_SECTION4_STATISTICS_UTILS_MOD, ONLY: CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE - - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_EMIT_STEP_ZERO - LOGICAL :: HAS_TIMERANGES - LOGICAL :: HAS_TYPE_OF_STATISTICAL_PROCESSING - LOGICAL :: HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS - LOGICAL :: HAS_OVERALL_LENGTH_OF_TIMERANGE - INTEGER(KIND=JPIB_K) :: I - TYPE(YAML_CONFIGURATION_T) :: TIME_RANGE_CONFIGURATION - TYPE(YAML_CONFIGURATIONS_T) :: TIME_RANGES_CONFIGURATION - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - PROCEDURE(FUN_C2I_IF), POINTER :: P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - PROCEDURE(FUN_C2I_IF), POINTER :: P_CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CFG_NOT_ALLOCATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_SUBCFG_SIZE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_NUMBER_OF_TIMERANGES=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UDEFINED_LENGTH_OF_TIMERANGE=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_OVERDEFINED_LENGTH_OF_TIMERANGE=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG_BY_ID=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_RANGE_DEALLOCATION_ERROR=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_RANGES_DEALLOCATION_ERROR=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ALLOCATED(THIS%TYPE_OF_STATISTICAL_PROCESS_), ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOCATED(THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_), ERRFLAG_CFG_NOT_ALLOCATED ) - - !> Read the encoder configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'emit-step-zero', HAS_EMIT_STEP_ZERO, HOOKS ) - IF ( HAS_EMIT_STEP_ZERO ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_LOGICAL( CFG, 'emit-step-zero', THIS%EMIT_STEP_ZERO_, HOOKS ) - ELSE - THIS%EMIT_STEP_ZERO_ = .FALSE. - ENDIF - - !> Read the encoder configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'time-ranges', HAS_TIMERANGES, HOOKS ) - - IF ( HAS_TIMERANGES ) THEN - !> Read all the subconfigurations - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATIONS( CFG, 'time-ranges', TIME_RANGES_CONFIGURATION, HOOKS ) - - !> Get the sections size - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_SUBCFG_SIZE) YAML_GET_CONFIGURATIONS_SIZE( TIME_RANGES_CONFIGURATION, THIS%NUMBER_OF_TIME_RANGES_, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_ .LE. 0, ERRFLAG_WRONG_NUMBER_OF_TIMERANGES ) - - !> Allocate statistics informations - ALLOCATE( THIS%TYPE_OF_STATISTICAL_PROCESS_(THIS%NUMBER_OF_TIME_RANGES_), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_UNABLE_TO_ALLOCATE ) - THIS%TYPE_OF_STATISTICAL_PROCESS_ = UNDEF_PARAM_E - - ALLOCATE( THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(THIS%NUMBER_OF_TIME_RANGES_), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_UNABLE_TO_ALLOCATE ) - THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_ = -1_JPIB_K - - !> Loop over sections - DO I = 1 , THIS%NUMBER_OF_TIME_RANGES_ - - !> Get section configuration by ID - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG_BY_ID) YAML_GET_CONFIGURATION_BY_ID( TIME_RANGES_CONFIGURATION, I, TIME_RANGE_CONFIGURATION, HOOKS ) - - !> Check if configuration has the section keyword - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( TIME_RANGE_CONFIGURATION, 'type-of-statistical-processing', HAS_TYPE_OF_STATISTICAL_PROCESSING, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( TIME_RANGE_CONFIGURATION, 'overall-length-of-timerange-in-seconds', HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( TIME_RANGE_CONFIGURATION, 'overall-length-of-timerange', HAS_OVERALL_LENGTH_OF_TIMERANGE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TYPE_OF_STATISTICAL_PROCESSING, ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING ) - PP_DEBUG_CRITICAL_COND_THROW( ALL( [.NOT.HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS, .NOT.HAS_OVERALL_LENGTH_OF_TIMERANGE]) , ERRFLAG_UDEFINED_LENGTH_OF_TIMERANGE ) - PP_DEBUG_CRITICAL_COND_THROW( ALL( [HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS, HAS_OVERALL_LENGTH_OF_TIMERANGE]) , ERRFLAG_OVERDEFINED_LENGTH_OF_TIMERANGE ) - - !> Read the type of statistical processing - P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS => CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER_WITH_FILTER( TIME_RANGE_CONFIGURATION, 'type-of-statistical-processing', THIS%TYPE_OF_STATISTICAL_PROCESS_(I), P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS, HOOKS ) - - !> Read the overall length of timerange in seconds - IF ( HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( TIME_RANGE_CONFIGURATION, 'overall-length-of-timerange-in-seconds', THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(I), HOOKS ) - ELSEIF ( HAS_OVERALL_LENGTH_OF_TIMERANGE ) THEN - P_CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE => CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER_WITH_FILTER( TIME_RANGE_CONFIGURATION, 'overall-length-of-timerange', THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(I), P_CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE, HOOKS ) - END IF - - !> Deallocate section configuration - PP_TRYCALL( ERRFLAG_TIME_RANGE_DEALLOCATION_ERROR ) YAML_DELETE_CONFIGURATION( TIME_RANGE_CONFIGURATION, HOOKS ) - - ENDDO - - !> Deallocate sections - PP_TRYCALL( ERRFLAG_TIME_RANGES_DEALLOCATION_ERROR ) YAML_DELETE_CONFIGURATIONS( TIME_RANGES_CONFIGURATION, HOOKS ) - ELSE - - !> Check if configuration has the section keyword - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'type-of-statistical-processing', HAS_TYPE_OF_STATISTICAL_PROCESSING, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'overall-length-of-timerange-in-seconds', HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'overall-length-of-timerange', HAS_OVERALL_LENGTH_OF_TIMERANGE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TYPE_OF_STATISTICAL_PROCESSING, ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING ) - PP_DEBUG_CRITICAL_COND_THROW( ALL( [.NOT.HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS, .NOT.HAS_OVERALL_LENGTH_OF_TIMERANGE]) , ERRFLAG_UDEFINED_LENGTH_OF_TIMERANGE ) - PP_DEBUG_CRITICAL_COND_THROW( ALL( [HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS, HAS_OVERALL_LENGTH_OF_TIMERANGE]) , ERRFLAG_OVERDEFINED_LENGTH_OF_TIMERANGE ) - - !> Number of time ranges is assumed to be 1 - THIS%NUMBER_OF_TIME_RANGES_ = 1_JPIB_K - - !> Allocate statistics informations - ALLOCATE( THIS%TYPE_OF_STATISTICAL_PROCESS_(THIS%NUMBER_OF_TIME_RANGES_), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_UNABLE_TO_ALLOCATE ) - THIS%TYPE_OF_STATISTICAL_PROCESS_ = UNDEF_PARAM_E - - ALLOCATE( THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(THIS%NUMBER_OF_TIME_RANGES_), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_UNABLE_TO_ALLOCATE ) - THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_ = -1_JPIB_K - - !> Initialize the fake index - I = 1_JPIB_K - - !> Read the type of statistical processing - P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS => CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER_WITH_FILTER( CFG, 'type-of-statistical-processing', THIS%TYPE_OF_STATISTICAL_PROCESS_(I), P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS, HOOKS ) - - !> Read the overall length of timerange in seconds - IF ( HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'overall-length-of-timerange-in-seconds', THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(I), HOOKS ) - ELSEIF ( HAS_OVERALL_LENGTH_OF_TIMERANGE ) THEN - P_CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE => CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER_WITH_FILTER( CFG, 'overall-length-of-timerange', THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(I), P_CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE, HOOKS ) - END IF - - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_ALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating memory' ) - CASE ( ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error internal state already allocated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error reading configuration' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error reading subconfigurations' ) - CASE ( ERRFLAG_UNABLE_TO_GET_SUBCFG_SIZE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error getting subconfigurations size' ) - CASE ( ERRFLAG_WRONG_NUMBER_OF_TIMERANGES ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error wrong number of timeranges' ) - CASE ( ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error undefined type of statistical processing' ) - CASE ( ERRFLAG_UDEFINED_LENGTH_OF_TIMERANGE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error undefined length of timerange' ) - CASE ( ERRFLAG_OVERDEFINED_LENGTH_OF_TIMERANGE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error overdefined length of timerange' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG_BY_ID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error reading configuration by ID' ) - CASE ( ERRFLAG_TIME_RANGE_DEALLOCATION_ERROR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating time range type' ) - CASE ( ERRFLAG_TIME_RANGES_DEALLOCATION_ERROR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating time ranges type' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_READ_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_STATISTICS_FIXED_TIMERANGE_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_since_beginning_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_since_beginning_mod.F90 deleted file mode 100644 index 0ffb048d5..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_since_beginning_mod.F90 +++ /dev/null @@ -1,1704 +0,0 @@ -!> -!> @file grib2_sECTION4_STATISTICS_SINCE_BEGINNING_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_INIT -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_ALLOCATE -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRESET -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_RUNTIME -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_statistics_since_beginning_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_MOD' -MODULE GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_STATISTICAL_PROCESS_MISSING_E -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T - - !> Default symbols visibility - PRIVATE - - !> Type-specific fields - INTEGER(KIND=JPIB_K) :: NUMBER_OF_TIME_RANGES_ = -1_JPIB_K - INTEGER(KIND=JPIB_K) :: OUTER_TYPE_OF_STATISTICAL_PROCESS_ = TYPE_OF_STATISTICAL_PROCESS_MISSING_E - LOGICAL :: ENCODE_STEP_ZERO_ = .TRUE. - - INTEGER(KIND=JPIB_K), DIMENSION(:), ALLOCATABLE :: TYPE_OF_STATISTICAL_PROCESS_ - INTEGER(KIND=JPIB_K), DIMENSION(:), ALLOCATABLE :: OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_ - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_RUNTIME - - !> - !> @brief Prints the GRIB2 Section 4 time configuration object needs to be encoded. - !> - !> This procedure prints the object based on the provided parameters and internal state. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRINT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_FREE - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: READ_FROM_CFG => GRIB2_SECTION4_READ_FROM_CFG - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'TIME-STATISTICS' - THIS%KIND_ = 'SINCE_BEGINNING' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ) THIS%READ_FROM_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TO_BE_IMPLEMENTED=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.GT.1, ERRFLAG_TO_BE_IMPLEMENTED ) - - ! Allocate the time ranges - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfTimeRange', THIS%NUMBER_OF_TIME_RANGES_ ) - - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'hoursAfterDataCutoff' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'minutesAfterDataCutoff' ) - - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfStatisticalProcessing', THIS%OUTER_TYPE_OF_STATISTICAL_PROCESS_ ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitOfTimeRange', 'h' ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_INVALID_CONFIGURATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid configuration' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TO_BE_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error to be implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TO_BE_IMPLEMENTED=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.GT.1, ERRFLAG_TO_BE_IMPLEMENTED ) - - !> Preset everything that can be preset - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfStatisticalProcessing', THIS%OUTER_TYPE_OF_STATISTICAL_PROCESS_ ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitOfTimeRange', 'h' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitForTimeRange', 'h' ) - - !> @note See MUL-227 - IF ( PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_ .EQ. UNDEF_PARAM_E .OR. & ! lacks("lengthOfTimeStepInSeconds") -& PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_ .EQ. 0_JPIB_K ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfTimeIncrement', 2_JPIB_K ) ! Code Table 4.11 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitForTimeIncrement', 255_JPIB_K ) ! Code table 4.4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'timeIncrement', 0_JPIB_K ) ! default value - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfTimeIncrement', 2_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitForTimeIncrement', 's' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'timeIncrement', INT(PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_, KIND=JPIB_K) ) - ENDIF - ! TODO: Implement the inner loops - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid configuration' ) - CASE ( ERRFLAG_TO_BE_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error to be implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - ! Symbolds imported from intrinsic modules - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_DOUBLE - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: TYPE_FC_E - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB2_SECTION4_STATISTICS_UTILS_MOD, ONLY: COMPUTE_TIME_SINCE_START - USE :: GRIB2_SECTION4_STATISTICS_UTILS_MOD, ONLY: SET_END_OF_TIME_INTERVAL - - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K), DIMENSION(6) :: DATE_TIME - INTEGER(KIND=JPIB_K) :: TIME_SINCE_START - INTEGER(KIND=JPIB_K) :: FORECAST_TIME - INTEGER(KIND=JPIB_K) :: LOC_LENGTH_OF_TIME_RANGE - INTEGER(KIND=JPIM_K) :: KRET - REAL(KIND=C_DOUBLE) :: JDT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_FIELD=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TO_BE_IMPLEMENTED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_TO_COMPUTE_END_OF_TIME_INTERVAL=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_COMPUTE_TIME_SINCE_START=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NO_FC=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_TIMERANGE=10_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.GT.1, ERRFLAG_TO_BE_IMPLEMENTED ) - ! PP_DEBUG_CRITICAL_COND_THROW( MSG%TYPE.NE.TYPE_FC_E, ERRFLAG_NO_FC ) - - ! Compute the current time - PP_TRYCALL(ERRFLAG_COMPUTE_TIME_SINCE_START) COMPUTE_TIME_SINCE_START( & -& MSG, PAR, OPT, TIME_SINCE_START, HOOKS ) - - ! Compute the forecast time - FORECAST_TIME = 0_JPIB_K - - !> Should be equal to the OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS, otherwise the field should not be encoded - LOC_LENGTH_OF_TIME_RANGE = TIME_SINCE_START - FORECAST_TIME - - ! MIVAL: TODO improve handling of timespan and step in order to avoid this check - !! IF ( MSG%TIMESPAN.NE.UNDEF_PARAM_E ) THEN - !! PP_DEBUG_CRITICAL_COND_THROW( MSG%TIMESPAN.NE.MSG%STEP, ERRFLAG_WRONG_TIMERANGE ) - !! ENDIF - - !> Set the current point in time for the current loop - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'forecastTime', FORECAST_TIME/3600 ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'lengthOfTimeRange', LOC_LENGTH_OF_TIME_RANGE/3600 ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'startStep', 0_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'endStep', MSG%STEP ) - - ! Unpack date time -! PP_TRYCALL(ERRFLAG_UNABLE_TO_TO_COMPUTE_END_OF_TIME_INTERVAL) SET_END_OF_TIME_INTERVAL( MSG, PAR, & -!& TIME_SINCE_START, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - CHARACTER(LEN=32) :: CTMP1 - CHARACTER(LEN=32) :: CTMP2 - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_COMPUTE_TIME_SINCE_START ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute time since start' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_INVALID_FIELD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid field' ) - CASE ( ERRFLAG_UNABLE_TO_TO_COMPUTE_END_OF_TIME_INTERVAL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute end of time interval' ) - CASE ( ERRFLAG_NO_FC ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'no forecast time' ) - CASE ( ERRFLAG_WRONG_TIMERANGE ) - CTMP1 = REPEAT( ' ', 32 ) - WRITE( CTMP1, '(I32)' ) MSG%STEP - CTMP2 = REPEAT( ' ', 32 ) - WRITE( CTMP2, '(I32)' ) MSG%TIMESPAN - PP_DEBUG_PUSH_MSG_TO_FRAME( 'wrong time range' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'got: '//TRIM(ADJUSTL(CTMP2)) ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'expected: '//TRIM(ADJUSTL(CTMP1)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: ENUMERATORS_MOD, ONLY: ITYPE_OF_STATISTICAL_PROCESS2CTYPE_OF_STATISTICAL_PROCESS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: I - INTEGER(KIND=JPIB_K) :: WRITE_STAT - INTEGER(KIND=JPIB_K) :: LOC_OFFSET - CHARACTER(LEN=32) :: CTMP - CHARACTER(LEN=16) :: CTYPE_OF_STATISTICAL_PROCESS - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENUM2STRING=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), '(', & -& TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - LOC_OFFSET=OFFSET+2 - - - - PP_TRYCALL(ERRFLAG_ENUM2STRING) ITYPE_OF_STATISTICAL_PROCESS2CTYPE_OF_STATISTICAL_PROCESS( THIS%OUTER_TYPE_OF_STATISTICAL_PROCESS_, CTYPE_OF_STATISTICAL_PROCESS, HOOKS ) - WRITE(UNIT,'(A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& 'OUTER_TYPE_OF_STATISTICAL_PROCESS: "', TRIM(ADJUSTL(CTYPE_OF_STATISTICAL_PROCESS)), '"' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - - - CTMP=REPEAT(' ',32) - WRITE(CTMP,*, IOSTAT=WRITE_STAT) THIS%ENCODE_STEP_ZERO_ - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& 'ENCODE_STEP_ZERO: ', TRIM(ADJUSTL(CTMP)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - - - - IF ( THIS%NUMBER_OF_TIME_RANGES_ .GT. 1_JPIB_K ) THEN - CTMP=REPEAT(' ',32) - WRITE(CTMP,*, IOSTAT=WRITE_STAT) THIS%NUMBER_OF_TIME_RANGES_ - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& 'NUMBER OF TIME RANGES: ', TRIM(ADJUSTL(CTMP)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& 'TIME RANGES: {' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - LOC_OFFSET=OFFSET+2 - - DO I = 1, THIS%NUMBER_OF_TIME_RANGES_ - CTMP=REPEAT(' ',32) - WRITE(CTMP,*, IOSTAT=WRITE_STAT) I - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - WRITE(UNIT,'(A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& '- TIME_RANGE[', TRIM(ADJUSTL(CTMP)), ']' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - - PP_TRYCALL(ERRFLAG_ENUM2STRING) ITYPE_OF_STATISTICAL_PROCESS2CTYPE_OF_STATISTICAL_PROCESS( THIS%TYPE_OF_STATISTICAL_PROCESS_(I), CTYPE_OF_STATISTICAL_PROCESS, HOOKS ) - WRITE(UNIT,'(A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& ' TYPE_OF_STATISTICAL_PROCESS: "', TRIM(ADJUSTL(CTYPE_OF_STATISTICAL_PROCESS)), '"' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - - CTMP=REPEAT(' ',32) - WRITE(CTMP,*, IOSTAT=WRITE_STAT) THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(I) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - WRITE(UNIT,'(A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& ' OVERALL_LENGTH_OF_TIMERANGE: ', TRIM(ADJUSTL(CTMP)), 's' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - - IF ( I .LT. THIS%NUMBER_OF_TIME_RANGES_ ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ENDDO - ENDIF - - - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_ENUM2STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting enum to string' ) - CASE (ERRFLAG_INVALID_CONFIGURATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_STATISTICAL_PROCESS_MISSING_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOC=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Deallocate memory - THIS%NUMBER_OF_TIME_RANGES_ = UNDEF_PARAM_E - THIS%OUTER_TYPE_OF_STATISTICAL_PROCESS_ = TYPE_OF_STATISTICAL_PROCESS_MISSING_E - THIS%ENCODE_STEP_ZERO_ = .FALSE. - - IF ( ALLOCATED(THIS%TYPE_OF_STATISTICAL_PROCESS_) ) THEN - DEALLOCATE( THIS%TYPE_OF_STATISTICAL_PROCESS_, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS .NE. 0, ERRFLAG_DEALLOC ) - END IF - - IF ( ALLOCATED(THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_) ) THEN - DEALLOCATE( THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS .NE. 0, ERRFLAG_DEALLOC ) - END IF - - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DEALLOC ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating memory' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - - -!> -!> @brief REad the configuration parameters of this class from a CFG -!> -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T` representing the GRIB section to be freed. -!> @param [in] CFG The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_READ_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_READ_FROM_CFG( THIS, CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATIONS - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_CONFIGURATIONS_SIZE - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_CONFIGURATION_BY_ID - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_LOGICAL - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER_WITH_FILTER - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATIONS - USE :: YAML_CORE_UTILS_MOD, ONLY: FUN_C2I_IF - USE :: ENUMERATORS_MOD, ONLY: CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIMERANGES - LOGICAL :: HAS_TYPE_OF_STATISTICAL_PROCESSING - LOGICAL :: HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS - LOGICAL :: HAS_OVERALL_LENGTH_OF_TIMERANGE - LOGICAL :: HAS_ENCODE_STEP_ZERO - INTEGER(KIND=JPIB_K) :: NUMBER_OF_TIMERANGES - INTEGER(KIND=JPIB_K) :: I - TYPE(YAML_CONFIGURATION_T) :: TIME_RANGE_CONFIGURATION - TYPE(YAML_CONFIGURATIONS_T) :: TIME_RANGES_CONFIGURATION - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - PROCEDURE(FUN_C2I_IF), POINTER :: P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - PROCEDURE(FUN_C2I_IF), POINTER :: P_CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ALLOCATE=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CFG_NOT_ALLOCATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_SUBCFG_SIZE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_NUMBER_OF_TIMERANGES=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UDEFINED_LENGTH_OF_TIMERANGE=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_OVERDEFINED_LENGTH_OF_TIMERANGE=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG_BY_ID=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_RANGE_DEALLOCATION_ERROR=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_RANGES_DEALLOCATION_ERROR=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ALLOCATED(THIS%TYPE_OF_STATISTICAL_PROCESS_), ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOCATED(THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_), ERRFLAG_CFG_NOT_ALLOCATED ) - - - !> Read the encoder configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'time-ranges', HAS_TIMERANGES, HOOKS ) - - IF ( HAS_TIMERANGES ) THEN - - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'type-of-statistical-processing', HAS_TYPE_OF_STATISTICAL_PROCESSING, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TYPE_OF_STATISTICAL_PROCESSING, ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'encode-step-zero', HAS_ENCODE_STEP_ZERO, HOOKS ) - - !> Read the type of statistical processing - P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS => CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER_WITH_FILTER( CFG, 'type-of-statistical-processing', THIS%OUTER_TYPE_OF_STATISTICAL_PROCESS_, P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS, HOOKS ) - IF ( HAS_ENCODE_STEP_ZERO ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'encode-step-zero', THIS%ENCODE_STEP_ZERO_, HOOKS ) - ELSE - THIS%ENCODE_STEP_ZERO_ = .FALSE. - ENDIF - - !> Read all the subconfigurations - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATIONS( CFG, 'time-ranges', TIME_RANGES_CONFIGURATION, HOOKS ) - - !> Get the sections size - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_SUBCFG_SIZE) YAML_GET_CONFIGURATIONS_SIZE( TIME_RANGES_CONFIGURATION, NUMBER_OF_TIMERANGES, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( NUMBER_OF_TIMERANGES .LE. 0, ERRFLAG_WRONG_NUMBER_OF_TIMERANGES ) - - !> Number of time ranges needs to be grater then 1 (the outer one has no length) - THIS%NUMBER_OF_TIME_RANGES_ = NUMBER_OF_TIMERANGES + 1_JPIB_K - - !> Read the type of statistical processing - P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS => CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER_WITH_FILTER( CFG, 'type-of-statistical-processing', THIS%TYPE_OF_STATISTICAL_PROCESS_(I), P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS, HOOKS ) - - - !> Allocate statistics informations - ALLOCATE( THIS%TYPE_OF_STATISTICAL_PROCESS_(THIS%NUMBER_OF_TIME_RANGES_), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_UNABLE_TO_ALLOCATE ) - THIS%TYPE_OF_STATISTICAL_PROCESS_ = UNDEF_PARAM_E - - ALLOCATE( THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(THIS%NUMBER_OF_TIME_RANGES_), STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS .NE. 0, ERRFLAG_UNABLE_TO_ALLOCATE ) - THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_ = -1_JPIB_K - - !> Loop over sections - DO I = 1 , THIS%NUMBER_OF_TIME_RANGES_ - - !> Get section configuration by ID - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG_BY_ID) YAML_GET_CONFIGURATION_BY_ID( TIME_RANGES_CONFIGURATION, I, TIME_RANGE_CONFIGURATION, HOOKS ) - - !> Check if configuration has the section keyword - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( TIME_RANGE_CONFIGURATION, 'type-of-statistical-processing', HAS_TYPE_OF_STATISTICAL_PROCESSING, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( TIME_RANGE_CONFIGURATION, 'overall-length-of-timerange-in-seconds', HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( TIME_RANGE_CONFIGURATION, 'overall-length-of-timerange', HAS_OVERALL_LENGTH_OF_TIMERANGE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TYPE_OF_STATISTICAL_PROCESSING, ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING ) - PP_DEBUG_CRITICAL_COND_THROW( ALL( [.NOT.HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS, .NOT.HAS_OVERALL_LENGTH_OF_TIMERANGE]) , ERRFLAG_UDEFINED_LENGTH_OF_TIMERANGE ) - PP_DEBUG_CRITICAL_COND_THROW( ALL( [HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS, HAS_OVERALL_LENGTH_OF_TIMERANGE]) , ERRFLAG_OVERDEFINED_LENGTH_OF_TIMERANGE ) - - !> Read the type of statistical processing - P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS => CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER_WITH_FILTER( TIME_RANGE_CONFIGURATION, 'type-of-statistical-processing', THIS%TYPE_OF_STATISTICAL_PROCESS_(I), P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS, HOOKS ) - - !> Read the overall length of timerange in seconds - IF ( HAS_OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( TIME_RANGE_CONFIGURATION, 'overall-length-of-timerange-in-seconds', THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(I), HOOKS ) - ELSEIF ( HAS_OVERALL_LENGTH_OF_TIMERANGE ) THEN - P_CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE => CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER_WITH_FILTER( TIME_RANGE_CONFIGURATION, 'overall-length-of-timerange', THIS%OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_(I), P_CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE, HOOKS ) - END IF - - !> Deallocate section configuration - PP_TRYCALL( ERRFLAG_TIME_RANGE_DEALLOCATION_ERROR ) YAML_DELETE_CONFIGURATION( TIME_RANGE_CONFIGURATION, HOOKS ) - - ENDDO - - !> Deallocate sections - PP_TRYCALL( ERRFLAG_TIME_RANGES_DEALLOCATION_ERROR ) YAML_DELETE_CONFIGURATIONS( TIME_RANGES_CONFIGURATION, HOOKS ) - ELSE - - !> Number of time ranges is assumed to be 1 - THIS%NUMBER_OF_TIME_RANGES_ = 1_JPIB_K - - !> REad configuration of r the outer loop - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'type-of-statistical-processing', HAS_TYPE_OF_STATISTICAL_PROCESSING, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TYPE_OF_STATISTICAL_PROCESSING, ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'encode-step-zero', HAS_ENCODE_STEP_ZERO, HOOKS ) - - !> Read the type of statistical processing - P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS => CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER_WITH_FILTER( CFG, 'type-of-statistical-processing', THIS%OUTER_TYPE_OF_STATISTICAL_PROCESS_, P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS, HOOKS ) - IF ( HAS_ENCODE_STEP_ZERO ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'encode-step-zero', THIS%ENCODE_STEP_ZERO_, HOOKS ) - ELSE - THIS%ENCODE_STEP_ZERO_ = .FALSE. - ENDIF - - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_ALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating memory' ) - CASE ( ERRFLAG_CFG_NOT_ALLOCATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error internal state already allocated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error reading configuration' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error reading subconfigurations' ) - CASE ( ERRFLAG_UNABLE_TO_GET_SUBCFG_SIZE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error getting subconfigurations size' ) - CASE ( ERRFLAG_WRONG_NUMBER_OF_TIMERANGES ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error wrong number of timeranges' ) - CASE ( ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error undefined type of statistical processing' ) - CASE ( ERRFLAG_UDEFINED_LENGTH_OF_TIMERANGE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error undefined length of timerange' ) - CASE ( ERRFLAG_OVERDEFINED_LENGTH_OF_TIMERANGE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error overdefined length of timerange' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG_BY_ID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error reading configuration by ID' ) - CASE ( ERRFLAG_TIME_RANGE_DEALLOCATION_ERROR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating time range type' ) - CASE ( ERRFLAG_TIME_RANGES_DEALLOCATION_ERROR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating time ranges type' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_READ_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Converts a string representation of a time range into an integer representing length in seconds. -!> -!> This function takes a string input that specifies a length of time in a defined format (e.g., "5h" for 5 hours), -!> converts it into an integer representing the total length in seconds, and outputs this value through an output parameter. -!> -!> The function also processes input for a variety of time units: -!> - Seconds (s or S) -!> - Minutes (m or M) -!> - Hours (h or H) -!> - Days (d or D) -!> -!> @param [in] CLENGTH_OF_TIMERANGE The string representing the length of time in the specified format. -!> @param [out] ILENGTH_OF_TIMERANGE The integer output that will contain the length of time in seconds. -!> @param [inout] HOOKS A structure for hooks that may be used for debugging, logging, or other functionalities. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE' -PP_THREAD_SAFE FUNCTION CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE( CLENGTH_OF_TIMERANGE, ILENGTH_OF_TIMERANGE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CHARACTER(LEN=*), INTENT(IN) :: CLENGTH_OF_TIMERANGE - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ILENGTH_OF_TIMERANGE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: N - INTEGER(KIND=JPIB_K) :: SCALE_FACTOR - INTEGER(KIND=JPIB_K) :: TMP - INTEGER(KIND=JPIB_K) :: READ_STATUS - CHARACTER(LEN=LEN(CLENGTH_OF_TIMERANGE)) :: LOC_CLENGTH_OF_TIMERANGE - CHARACTER(LEN=LEN(CLENGTH_OF_TIMERANGE)) :: CLENGTH_OF_TIMERANGE_DIGITS - CHARACTER(LEN=1) :: CLENGTH_OF_TIMERANGE_SCALE_FACTOR - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_LENGTH_OF_TIMERANGE=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_SCALE_FACTOR_FOR_TIMERANGE=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Convert prefix to lowercase - LOC_CLENGTH_OF_TIMERANGE = REPEAT(' ', LEN( CLENGTH_OF_TIMERANGE ) ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( TRIM(ADJUSTL(CLENGTH_OF_TIMERANGE)), LOC_CLENGTH_OF_TIMERANGE, HOOKS ) - N = LEN_TRIM(LOC_CLENGTH_OF_TIMERANGE) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( N.LT.2, ERRFLAG_INVALID_LENGTH_OF_TIMERANGE ) - - !> Split the string into digits and scale factor - CLENGTH_OF_TIMERANGE_DIGITS = REPEAT(' ', LEN( CLENGTH_OF_TIMERANGE_DIGITS ) ) - CLENGTH_OF_TIMERANGE_DIGITS = LOC_CLENGTH_OF_TIMERANGE(1:N-1) - CLENGTH_OF_TIMERANGE_SCALE_FACTOR = LOC_CLENGTH_OF_TIMERANGE(N:N) - - !> Assign the scale factor - SELECT CASE( CLENGTH_OF_TIMERANGE_SCALE_FACTOR ) - CASE ( 's') - SCALE_FACTOR = 1_JPIB_K - CASE ( 'm') - SCALE_FACTOR = 60_JPIB_K - CASE ( 'h') - SCALE_FACTOR = 3600_JPIB_K - CASE ( 'd') - SCALE_FACTOR = 86400_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_INVALID_SCALE_FACTOR_FOR_TIMERANGE ) - END SELECT - - !> Convert the digits to integer - READ( CLENGTH_OF_TIMERANGE_DIGITS, *, IOSTAT=READ_STATUS) TMP - PP_DEBUG_CRITICAL_COND_THROW( READ_STATUS .NE. 0, ERRFLAG_INVALID_LENGTH_OF_TIMERANGE ) - - !> Calculate the length of the timerange - ILENGTH_OF_TIMERANGE = TMP * SCALE_FACTOR - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ILENGTH_OF_TIMERANGE .LT. 1, ERRFLAG_INVALID_LENGTH_OF_TIMERANGE ) - PP_DEBUG_CRITICAL_COND_THROW( MOD(ILENGTH_OF_TIMERANGE,3600_JPIB_K).NE.0, ERRFLAG_INVALID_LENGTH_OF_TIMERANGE ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_INVALID_LENGTH_OF_TIMERANGE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid length of timerange' ) - CASE ( ERRFLAG_UNABLE_TO_CONVERT_LC ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert to lowercase' ) - CASE ( ERRFLAG_INVALID_SCALE_FACTOR_FOR_TIMERANGE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid scale factor for timerange' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_STATISTICS_SINCE_BEGINNING_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_since_lastpp_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_since_lastpp_mod.F90 deleted file mode 100644 index 145d1de05..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_since_lastpp_mod.F90 +++ /dev/null @@ -1,1354 +0,0 @@ -!> -!> @file grib2_sECTION4_STATISTICS_SINCE_LASTPP_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 time configuration operations. -!> -!> The `GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 time configuration objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 time configuration objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_INIT -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_ALLOCATE -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRESET -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_RUNTIME -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_statistics_since_lastpp_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_MOD' -MODULE GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_STATISTICAL_PROCESS_MISSING_E - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 time configuration handler. -!> -!> The `GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 time configuration objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T - - !> Default symbols visibility - PRIVATE - - !> Type-specific fields - INTEGER(KIND=JPIB_K) :: NUMBER_OF_TIME_RANGES_ = -1_JPIB_K - INTEGER(KIND=JPIB_K) :: OUTER_TYPE_OF_STATISTICAL_PROCESS_ = TYPE_OF_STATISTICAL_PROCESS_MISSING_E - - INTEGER(KIND=JPIB_K), DIMENSION(:), ALLOCATABLE :: TYPE_OF_STATISTICAL_PROCESS_ - INTEGER(KIND=JPIB_K), DIMENSION(:), ALLOCATABLE :: OVERALL_LENGTH_OF_TIMERANGE_IN_SECONDS_ - - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 time configuration object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 time configuration object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 time configuration object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 time configuration operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_RUNTIME - - !> - !> @brief Prints the GRIB2 Section 4 time configuration object needs to be encoded. - !> - !> This procedure prints the object based on the provided parameters and internal state. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRINT - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_FREE - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 time configuration object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: READ_FROM_CFG => GRIB2_SECTION4_READ_FROM_CFG - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 time configuration for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'CONFIGURATOR' - THIS%SUBTYPE_ = 'TIME-STATISTICS' - THIS%KIND_ = 'SINCE_LASTPP' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ) THIS%READ_FROM_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read from configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 time configuration using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB2_SECTION4_STATTYPE_UTILS_MOD, ONLY: GET_NUMBER_OF_TIMELOOPS_FROM_MARS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TO_BE_IMPLEMENTED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_COMPUTE_NTIMELOOPS=4_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Get the number of time ranges - PP_TRYCALL(ERRFLAG_UNABLE_TO_COMPUTE_NTIMELOOPS ) GET_NUMBER_OF_TIMELOOPS_FROM_MARS( & -& MSG, THIS%NUMBER_OF_TIME_RANGES_, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.GT.2, ERRFLAG_TO_BE_IMPLEMENTED ) - - ! Allocate the time ranges - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfTimeRange', THIS%NUMBER_OF_TIME_RANGES_ ) - - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'hoursAfterDataCutoff' ) - PP_METADATA_SET_MISSING( METADATA, ERRFLAG_METADATA, 'minutesAfterDataCutoff' ) - - IF ( THIS%NUMBER_OF_TIME_RANGES_ .EQ. 1_JPIB_K ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfStatisticalProcessing', THIS%OUTER_TYPE_OF_STATISTICAL_PROCESS_ ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitOfTimeRange', 'h' ) - ENDIF - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_INVALID_CONFIGURATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid configuration' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TO_BE_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error to be implemented' ) - CASE ( ERRFLAG_UNABLE_TO_COMPUTE_NTIMELOOPS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute number of time loops from message' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 time configuration using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TO_BE_IMPLEMENTED=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.GT.2, ERRFLAG_TO_BE_IMPLEMENTED ) - - ! Corner case - IF ( THIS%NUMBER_OF_TIME_RANGES_ .EQ. 1_JPIB_K ) THEN - - !> Preset everything that can be preset - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfStatisticalProcessing', THIS%OUTER_TYPE_OF_STATISTICAL_PROCESS_ ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitOfTimeRange', 'h' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitForTimeRange', 'h' ) - - !> @note See MUL-227 - IF ( PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_ .EQ. UNDEF_PARAM_E .OR. & ! lacks("lengthOfTimeStepInSeconds") - & PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_ .EQ. 0_JPIB_K ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfTimeIncrement', 2_JPIB_K ) ! Code Table 4.11 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitForTimeIncrement', 255_JPIB_K ) ! Code table 4.4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'timeIncrement', 0_JPIB_K ) ! default value - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfTimeIncrement', 2_JPIB_K ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitForTimeIncrement', 's' ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'timeIncrement', INT(PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_, KIND=JPIB_K) ) - ENDIF - - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid configuration' ) - CASE ( ERRFLAG_TO_BE_IMPLEMENTED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error to be implemented' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 time configuration using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 time configuration object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_TO_BE_ENCODED -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - ! Symbolds imported from intrinsic modules - USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_DOUBLE - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPIM_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GRIB2_SECTION4_STATTYPE_UTILS_MOD, ONLY: STATISTICAL_PROCESSING_T - USE :: GRIB2_SECTION4_STATTYPE_UTILS_MOD, ONLY: GET_GRIB2_TIME_DESCRIPTION_FROM_MARS - USE :: GRIB2_SECTION4_STATTYPE_UTILS_MOD, ONLY: COMPUTE_END_DATETIME - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - TYPE(STATISTICAL_PROCESSING_T) :: TIME_DESC - INTEGER(KIND=JPIB_K), DIMENSION(6) :: DATE_TIME - INTEGER(KIND=JPIB_K) :: TIME_SINCE_START - INTEGER(KIND=JPIB_K) :: FORECAST_TIME - INTEGER(KIND=JPIB_K) :: LOC_LENGTH_OF_TIME_RANGE - INTEGER(KIND=JPIM_K) :: KRET - INTEGER(KIND=JPIB_K) :: END_DATE - INTEGER(KIND=JPIB_K) :: END_TIME - INTEGER(KIND=JPIB_K) :: END_YEAR - INTEGER(KIND=JPIB_K) :: END_MONTH - INTEGER(KIND=JPIB_K) :: END_DAY - INTEGER(KIND=JPIB_K) :: END_HOUR - INTEGER(KIND=JPIB_K) :: END_MINUTE - INTEGER(KIND=JPIB_K) :: END_SECOND - INTEGER(KIND=JPIB_K) :: LO - INTEGER(KIND=JPIB_K) :: HI - REAL(KIND=C_DOUBLE) :: JDT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_FIELD=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TO_BE_IMPLEMENTED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_TO_COMPUTE_END_OF_TIME_INTERVAL=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_COMPUTE_TIME_SINCE_START=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_EXPECTED_TIMESPAN=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_COMPUTE_END_DATETIME=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - - ! Encode the time range - IF ( THIS%NUMBER_OF_TIME_RANGES_ .EQ. 1_JPIB_K ) THEN - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( MSG%TIMESPAN.EQ.UNDEF_PARAM_E, ERRFLAG_EXPECTED_TIMESPAN ) - - !> Set the current point in time for the current loop - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'startStep', MAX(0_JPIB_K,MSG%STEP-MSG%TIMESPAN ) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'endStep', MSG%STEP ) - - ELSE - - ! Get time description from MARS - PP_TRYCALL(ERRFLAG_UNABLE_TO_TO_COMPUTE_END_OF_TIME_INTERVAL) GET_GRIB2_TIME_DESCRIPTION_FROM_MARS( & -& MSG, PAR, THIS%OUTER_TYPE_OF_STATISTICAL_PROCESS_, TIME_DESC, HOOKS ) - - ! Limits of the time ranges - LO = 1_JPIB_K - HI = TIME_DESC%NUMBER_OF_TIME_RANGES - - ! Set to grib the time description - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfStatisticalProcessing', TIME_DESC%TYPE_OF_STATISTICAL_PROCESSING(LO:HI) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'typeOfTimeIncrement', TIME_DESC%TYPE_OF_TIME_INCREMENT(LO:HI) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitForTimeRange', TIME_DESC%INDICATOR_OF_UNIT_FOR_TIME_RANGE(LO:HI) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'lengthOfTimeRange', TIME_DESC%LENGTH_OF_TIME_RANGE(LO:HI) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'indicatorOfUnitForTimeIncrement', TIME_DESC%INDICATOR_OF_UNIT_FOR_TIME_INCREMENT(LO:HI) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'timeIncrement', TIME_DESC%LENGTH_OF_TIME_INCREMENT(LO:HI) ) - - ! Compute END of time interval - PP_TRYCALL(ERRFLAG_COMPUTE_END_DATETIME) COMPUTE_END_DATETIME( & -& MSG, END_DATE, END_TIME, HOOKS, & -& YEAR=END_YEAR, MONTH=END_MONTH, DAY=END_DAY, HOUR=END_HOUR, MINUTE=END_MINUTE, SECOND=END_SECOND ) - - ! Configure the date_time array - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'yearOfEndOfOverallTimeInterval', END_YEAR ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'monthOfEndOfOverallTimeInterval', END_MONTH ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'dayOfEndOfOverallTimeInterval', END_DAY ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'hourOfEndOfOverallTimeInterval', END_HOUR ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'minuteOfEndOfOverallTimeInterval', END_MINUTE ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'secondOfEndOfOverallTimeInterval', END_SECOND ) - - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_COMPUTE_TIME_SINCE_START ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute time since start' ) - CASE ( ERRFLAG_INVALID_CONFIGURATION ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid configuration' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_INVALID_FIELD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid field' ) - CASE ( ERRFLAG_UNABLE_TO_TO_COMPUTE_END_OF_TIME_INTERVAL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute end of time interval' ) - CASE ( ERRFLAG_EXPECTED_TIMESPAN ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'expected timespan in mars dictionary' ) - CASE ( ERRFLAG_COMPUTE_END_DATETIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute end datetime' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: ENUMERATORS_MOD, ONLY: ITYPE_OF_STATISTICAL_PROCESS2CTYPE_OF_STATISTICAL_PROCESS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: I - INTEGER(KIND=JPIB_K) :: WRITE_STAT - INTEGER(KIND=JPIB_K) :: LOC_OFFSET - CHARACTER(LEN=32) :: CTMP - CHARACTER(LEN=16) :: CTYPE_OF_STATISTICAL_PROCESS - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENUM2STRING=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_CONFIGURATION=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( THIS%NUMBER_OF_TIME_RANGES_.LT.1, ERRFLAG_INVALID_CONFIGURATION ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), '(', & -& TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - LOC_OFFSET=OFFSET+2 - - - PP_TRYCALL(ERRFLAG_ENUM2STRING) ITYPE_OF_STATISTICAL_PROCESS2CTYPE_OF_STATISTICAL_PROCESS( THIS%OUTER_TYPE_OF_STATISTICAL_PROCESS_, CTYPE_OF_STATISTICAL_PROCESS, HOOKS ) - WRITE(UNIT,'(A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',LOC_OFFSET), & -& 'OUTER_TYPE_OF_STATISTICAL_PROCESS: "', TRIM(ADJUSTL(CTYPE_OF_STATISTICAL_PROCESS)), '"' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_ENUM2STRING) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error converting enum to string' ) - CASE (ERRFLAG_INVALID_CONFIGURATION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error invalid configuration' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 time configuration object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 time configuration object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief REad the configuration parameters of this class from a CFG -!> -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T` representing the GRIB section to be freed. -!> @param [in] CFG The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_INIT -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_ALLOCATE -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_PRESET -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_RUNTIME -!> @see GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_READ_FROM_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_READ_FROM_CFG( THIS, CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER_WITH_FILTER - USE :: YAML_CORE_UTILS_MOD, ONLY: FUN_C2I_IF - USE :: ENUMERATORS_MOD, ONLY: CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TYPE_OF_STATISTICAL_PROCESSING - PROCEDURE(FUN_C2I_IF), POINTER :: P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Number of time ranges is assumed to be 1 - THIS%NUMBER_OF_TIME_RANGES_ = 1_JPIB_K - - !> Read configuration of the outer loop - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'type-of-statistical-processing', HAS_TYPE_OF_STATISTICAL_PROCESSING, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TYPE_OF_STATISTICAL_PROCESSING, ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING ) - - !> Read the type of statistical processing - P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS => CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER_WITH_FILTER( CFG, 'type-of-statistical-processing', THIS%OUTER_TYPE_OF_STATISTICAL_PROCESS_, P_CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error reading configuration' ) - CASE ( ERRFLAG_UDEFINED_TYPE_OF_STATISTICAL_PROCESSING ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error undefined type of statistical processing' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_READ_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_STATISTICS_SINCE_LASTPP_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_utils_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_utils_mod.F90 deleted file mode 100644 index 7f08603c6..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_statistics_utils_mod.F90 +++ /dev/null @@ -1,461 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_statistics_utils_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_STATISTICS_UTILS_MOD' -MODULE GRIB2_SECTION4_STATISTICS_UTILS_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_STATISTICAL_PROCESS_MISSING_E - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Whitelist of public symbols -PUBLIC :: COMPUTE_TIME_SINCE_START -PUBLIC :: SET_END_OF_TIME_INTERVAL -PUBLIC :: CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE - - -CONTAINS - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'COMPUTE_TIME_SINCE_START' -PP_THREAD_SAFE FUNCTION COMPUTE_TIME_SINCE_START( & -& MSG, PAR, OPT, TIME_SINCE_START_IN_SECONDS, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: DATETIME_UTILS_MOD, ONLY: HOURS2SECONDS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - INTEGER(KIND=JPIB_K), INTENT(OUT) :: TIME_SINCE_START_IN_SECONDS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: INITIAL_STEP - INTEGER(KIND=JPIB_K) :: LENGTH_OF_TIME_STEP_IN_SECONDS - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_INITIAL_STEP=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_LENGTH_OF_TIME_STEP=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Get info from parametrization - PP_TRYCALL(ERRFLAG_INVALID_INITIAL_STEP) PAR%TIME%GET_INITIAL_STEP( INITIAL_STEP, HOOKS ) - PP_TRYCALL(ERRFLAG_INVALID_LENGTH_OF_TIME_STEP) PAR%TIME%GET_LENGTH_OF_TIME_STEP_IN_SECONDS( LENGTH_OF_TIME_STEP_IN_SECONDS, HOOKS ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( INITIAL_STEP .LT. 0, ERRFLAG_INVALID_INITIAL_STEP ) - PP_DEBUG_CRITICAL_COND_THROW( LENGTH_OF_TIME_STEP_IN_SECONDS .LT. 0, ERRFLAG_INVALID_LENGTH_OF_TIME_STEP ) - - ! Compute the time since the start of the simulation - TIME_SINCE_START_IN_SECONDS = MSG%STEP*LENGTH_OF_TIME_STEP_IN_SECONDS - - ! Add the contribution of the initial step - TIME_SINCE_START_IN_SECONDS = TIME_SINCE_START_IN_SECONDS + INITIAL_STEP * HOURS2SECONDS - - ! WRITE(*,*) 'STEP: ', MSG%STEP - ! WRITE(*,*) 'LENGTH_OF_TIME_STEP_IN_SECONDS: ', LENGTH_OF_TIME_STEP_IN_SECONDS - ! WRITE(*,*) 'INITIAL_STEP: ', INITIAL_STEP - ! WRITE(*,*) 'TIME_SINCE_START_IN_SECONDS: ', TIME_SINCE_START_IN_SECONDS - ! WRITE(*,*) 'TIME 0: ', INITIAL_STEP * HOURS2SECONDS - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_INVALID_INITIAL_STEP) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid initial step' ) - CASE (ERRFLAG_INVALID_LENGTH_OF_TIME_STEP) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid length of time step' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION COMPUTE_TIME_SINCE_START -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'SET_END_OF_TIME_INTERVAL' -PP_THREAD_SAFE FUNCTION SET_END_OF_TIME_INTERVAL( & -& MSG, PAR, TIME_SINCE_START_IN_SECONDS, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: DATETIME_UTILS_MOD, ONLY: YYYYMMDD_HHMMSS_TO_DATETIME - USE :: DATETIME_UTILS_MOD, ONLY: ADD_SECONDS_TO_DATETIME - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - INTEGER(KIND=JPIB_K), INTENT(IN) :: TIME_SINCE_START_IN_SECONDS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K), DIMENSION(6) :: IN_DATETIME - INTEGER(KIND=JPIB_K), DIMENSION(6) :: OUT_DATETIME - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_EXTRACT_DATETIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_ADD_SECONDS_TO_DATETIME=3_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - ! Unpack date time - PP_TRYCALL(ERRFLAG_UNABLE_TO_EXTRACT_DATETIME) YYYYMMDD_HHMMSS_TO_DATETIME( MSG%DATE, MSG%TIME, IN_DATETIME, HOOKS ) - - ! Add seconds related to the current time to date/time - IF ( TIME_SINCE_START_IN_SECONDS .GT. 0 ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_ADD_SECONDS_TO_DATETIME) ADD_SECONDS_TO_DATETIME( IN_DATETIME, TIME_SINCE_START_IN_SECONDS, OUT_DATETIME, HOOKS ) - ELSE - OUT_DATETIME = IN_DATETIME - ENDIF - - !> Set the metadata to the grib message - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'yearOfEndOfOverallTimeInterval', OUT_DATETIME(1)) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'monthOfEndOfOverallTimeInterval', OUT_DATETIME(2)) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'dayOfEndOfOverallTimeInterval', OUT_DATETIME(3)) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'hourOfEndOfOverallTimeInterval', OUT_DATETIME(4)) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'minuteOfEndOfOverallTimeInterval', OUT_DATETIME(5)) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'secondOfEndOfOverallTimeInterval', OUT_DATETIME(6)) - - ! Trace end of procedure (on error) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_METADATA) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to set metadata' ) - CASE (ERRFLAG_UNABLE_TO_EXTRACT_DATETIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert date time' ) - CASE (ERRFLAG_UNABLE_TO_ADD_SECONDS_TO_DATETIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to add seconds to date time' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION SET_END_OF_TIME_INTERVAL -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Converts a string representation of a time range into an integer representing length in seconds. -!> -!> This function takes a string input that specifies a length of time in a defined format (e.g., "5h" for 5 hours), -!> converts it into an integer representing the total length in seconds, and outputs this value through an output parameter. -!> -!> The function also processes input for a variety of time units: -!> - Seconds (s or S) -!> - Minutes (m or M) -!> - Hours (h or H) -!> - Days (d or D) -!> -!> @param [in] CLENGTH_OF_TIMERANGE The string representing the length of time in the specified format. -!> @param [out] ILENGTH_OF_TIMERANGE The integer output that will contain the length of time in seconds. -!> @param [inout] HOOKS A structure for hooks that may be used for debugging, logging, or other functionalities. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE' -PP_THREAD_SAFE FUNCTION CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE( CLENGTH_OF_TIMERANGE, ILENGTH_OF_TIMERANGE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GENERAL_UTILS_MOD, ONLY: TOLOWER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CHARACTER(LEN=*), INTENT(IN) :: CLENGTH_OF_TIMERANGE - INTEGER(KIND=JPIB_K), INTENT(OUT) :: ILENGTH_OF_TIMERANGE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: N - INTEGER(KIND=JPIB_K) :: SCALE_FACTOR - INTEGER(KIND=JPIB_K) :: TMP - INTEGER(KIND=JPIB_K) :: READ_STATUS - CHARACTER(LEN=LEN(CLENGTH_OF_TIMERANGE)) :: LOC_CLENGTH_OF_TIMERANGE - CHARACTER(LEN=LEN(CLENGTH_OF_TIMERANGE)) :: CLENGTH_OF_TIMERANGE_DIGITS - CHARACTER(LEN=1) :: CLENGTH_OF_TIMERANGE_SCALE_FACTOR - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_LENGTH_OF_TIMERANGE=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_LC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_SCALE_FACTOR_FOR_TIMERANGE=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Convert prefix to lowercase - LOC_CLENGTH_OF_TIMERANGE = REPEAT(' ', LEN( CLENGTH_OF_TIMERANGE ) ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_LC) TOLOWER( TRIM(ADJUSTL(CLENGTH_OF_TIMERANGE)), LOC_CLENGTH_OF_TIMERANGE, HOOKS ) - N = LEN_TRIM(LOC_CLENGTH_OF_TIMERANGE) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( N.LT.2, ERRFLAG_INVALID_LENGTH_OF_TIMERANGE ) - - !> Split the string into digits and scale factor - CLENGTH_OF_TIMERANGE_DIGITS = REPEAT(' ', LEN( CLENGTH_OF_TIMERANGE_DIGITS ) ) - CLENGTH_OF_TIMERANGE_DIGITS = LOC_CLENGTH_OF_TIMERANGE(1:N-1) - CLENGTH_OF_TIMERANGE_SCALE_FACTOR = LOC_CLENGTH_OF_TIMERANGE(N:N) - - !> Assign the scale factor - SELECT CASE( CLENGTH_OF_TIMERANGE_SCALE_FACTOR ) - CASE ( 's') - SCALE_FACTOR = 1_JPIB_K - CASE ( 'm') - SCALE_FACTOR = 60_JPIB_K - CASE ( 'h') - SCALE_FACTOR = 3600_JPIB_K - CASE ( 'd') - SCALE_FACTOR = 86400_JPIB_K - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_INVALID_SCALE_FACTOR_FOR_TIMERANGE ) - END SELECT - - !> Convert the digits to integer - READ( CLENGTH_OF_TIMERANGE_DIGITS, *, IOSTAT=READ_STATUS) TMP - PP_DEBUG_CRITICAL_COND_THROW( READ_STATUS .NE. 0, ERRFLAG_INVALID_LENGTH_OF_TIMERANGE ) - - !> Calculate the length of the timerange - ILENGTH_OF_TIMERANGE = TMP * SCALE_FACTOR - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ILENGTH_OF_TIMERANGE .LT. 1, ERRFLAG_INVALID_LENGTH_OF_TIMERANGE ) - PP_DEBUG_CRITICAL_COND_THROW( MOD(ILENGTH_OF_TIMERANGE,3600_JPIB_K).NE.0, ERRFLAG_INVALID_LENGTH_OF_TIMERANGE ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_INVALID_LENGTH_OF_TIMERANGE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid length of timerange' ) - CASE ( ERRFLAG_UNABLE_TO_CONVERT_LC ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert to lowercase' ) - CASE ( ERRFLAG_INVALID_SCALE_FACTOR_FOR_TIMERANGE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid scale factor for timerange' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION CLENGTH_OF_TIMERANGE2ILENGTH_OF_TIMERANGE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_STATISTICS_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_stattype_utils_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_stattype_utils_mod.F90 deleted file mode 100644 index 450840286..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2-statistics-configurator/grib2_section4_stattype_utils_mod.F90 +++ /dev/null @@ -1,1564 +0,0 @@ -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_stattype_utils_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_STATTYPE_UTILS_MOD' -MODULE GRIB2_SECTION4_STATTYPE_UTILS_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -INTEGER(KIND=JPIB_K), PARAMETER :: MAX_STATS = 8_JPIB_K - -!> Definition of the datatype used to represent the type of statistical processing -TYPE :: STATISTICAL_PROCESSING_T - INTEGER(KIND=JPIB_K) :: NUMBER_OF_TIME_RANGES=0_JPIB_K - INTEGER(KIND=JPIB_K), DIMENSION(MAX_STATS) :: TYPE_OF_STATISTICAL_PROCESSING - INTEGER(KIND=JPIB_K), DIMENSION(MAX_STATS) :: TYPE_OF_TIME_INCREMENT - INTEGER(KIND=JPIB_K), DIMENSION(MAX_STATS) :: INDICATOR_OF_UNIT_FOR_TIME_RANGE - INTEGER(KIND=JPIB_K), DIMENSION(MAX_STATS) :: LENGTH_OF_TIME_RANGE - INTEGER(KIND=JPIB_K), DIMENSION(MAX_STATS) :: INDICATOR_OF_UNIT_FOR_TIME_INCREMENT - INTEGER(KIND=JPIB_K), DIMENSION(MAX_STATS) :: LENGTH_OF_TIME_INCREMENT -END TYPE STATISTICAL_PROCESSING_T - -!> Whitelist of public symbols -PUBLIC :: STATISTICAL_PROCESSING_T -PUBLIC :: GET_NUMBER_OF_TIMELOOPS_FROM_MARS -PUBLIC :: COMPUTE_END_DATETIME -PUBLIC :: COMPUTE_FORECAST_DATETIME -PUBLIC :: GET_GRIB2_TIME_DESCRIPTION_FROM_MARS - - -CONTAINS - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GET_NUMBER_OF_TIMELOOPS_FROM_MARS' -PP_THREAD_SAFE FUNCTION GET_NUMBER_OF_TIMELOOPS_FROM_MARS( & -& MSG, NUMBER_OF_TIMELOOPS, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - INTEGER(KIND=JPIB_K), INTENT(OUT) :: NUMBER_OF_TIMELOOPS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: I - LOGICAL :: HAS_TIMESPAN - LOGICAL :: HAS_STATTYPE - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_INPUT_VALUE = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LOGIC_ERROR = 2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize output and local variables - NUMBER_OF_TIMELOOPS = -1_JPIB_K - HAS_TIMESPAN = .FALSE. - HAS_STATTYPE = .FALSE. - - ! Check for timespan and stattype - IF ( MSG%TIMESPAN .NE. UNDEF_PARAM_E ) THEN - HAS_TIMESPAN = .TRUE. - END IF - - IF ( MSG%STATTYPE .NE. REPEAT('*',32) ) THEN - HAS_STATTYPE = .TRUE. - END IF - - ! Determine number of timeloops - IF ( .NOT.HAS_TIMESPAN .AND. .NOT.HAS_STATTYPE ) THEN - NUMBER_OF_TIMELOOPS = 0_JPIB_K - ELSEIF ( HAS_TIMESPAN .AND. .NOT.HAS_STATTYPE ) THEN - NUMBER_OF_TIMELOOPS = 1_JPIB_K - ELSEIF ( HAS_TIMESPAN .AND. HAS_STATTYPE ) THEN - NUMBER_OF_TIMELOOPS = 2_JPIB_K - DO I = 1_JPIB_K, LEN_TRIM(MSG%STATTYPE) - IF ( MSG%STATTYPE(I:I) == '_' ) THEN - NUMBER_OF_TIMELOOPS = NUMBER_OF_TIMELOOPS + 1_JPIB_K - ENDIF - ENDDO - ELSE - PP_DEBUG_CRITICAL_THROW( ERRFLAG_WRONG_INPUT_VALUE ) - ENDIF - - ! Sanity check - PP_DEBUG_CRITICAL_COND_THROW( NUMBER_OF_TIMELOOPS .LT. 0_JPIB_K, ERRFLAG_LOGIC_ERROR ) - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_WRONG_INPUT_VALUE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'wrong input value: inconsistent timespan/stattype combination' ) - CASE ( ERRFLAG_LOGIC_ERROR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'logic error: number of timeloops < 0' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GET_NUMBER_OF_TIMELOOPS_FROM_MARS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PARSE_STATYPE' -PP_THREAD_SAFE FUNCTION PARSE_STATYPE( & -& MSG, STATTYPE, NBLOCKS, NTIME_LOOPS, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: ENUMERATORS_MOD, ONLY: CTYPE_OF_PERIOD2ITYPE_OF_PERIOD - USE :: ENUMERATORS_MOD, ONLY: ITYPE_OF_PERIOD2CTYPE_OF_PERIOD - USE :: ENUMERATORS_MOD, ONLY: CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS - USE :: ENUMERATORS_MOD, ONLY: ITYPE_OF_STATISTICAL_PROCESS2CTYPE_OF_STATISTICAL_PROCESS - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - INTEGER(KIND=JPIB_K), DIMENSION(:,:), INTENT(OUT) :: STATTYPE - INTEGER(KIND=JPIB_K), INTENT(OUT) :: NTIME_LOOPS - INTEGER(KIND=JPIB_K), INTENT(OUT) :: NBLOCKS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - CHARACTER(LEN=2) :: CPER - CHARACTER(LEN=2) :: COP - INTEGER(KIND=JPIB_K) :: IPER - INTEGER(KIND=JPIB_K) :: IOP - INTEGER(KIND=JPIB_K) :: I - INTEGER(KIND=JPIB_K) :: POS - LOGICAL :: BVALIDPERIOD - LOGICAL :: BVALIDOPERATION - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_NUMBER_OF_TIMELOOPS = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRONG_STATTYPE_DIMENSIONS = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_PERIOD = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_OPERATION = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_STATTYPE_FORMAT = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_PERIOD = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONVERT_OPERATION = 7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Get number of timeloops - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_NUMBER_OF_TIMELOOPS) & -& GET_NUMBER_OF_TIMELOOPS_FROM_MARS( MSG, NTIME_LOOPS, HOOKS ) - - ! Number of block in stattype is the number of timeloops - 1 - NBLOCKS = NTIME_LOOPS - 1_JPIB_K - - ! Error handling (basic dimensional checks) - PP_DEBUG_CRITICAL_COND_THROW( NBLOCKS .LT. 0_JPIB_K, ERRFLAG_UNABLE_TO_GET_NUMBER_OF_TIMELOOPS ) - PP_DEBUG_CRITICAL_COND_THROW( SIZE(STATTYPE,1) .LT. NBLOCKS, ERRFLAG_WRONG_STATTYPE_DIMENSIONS ) - PP_DEBUG_CRITICAL_COND_THROW( SIZE(STATTYPE,2) .NE. 2_JPIB_K, ERRFLAG_WRONG_STATTYPE_DIMENSIONS ) - - ! Parse stattype if needed - IF ( NBLOCKS .GT. 0_JPIB_K ) THEN - - POS = 1_JPIB_K - DO I = 1_JPIB_K, NBLOCKS - - ! Extract period and operation - CPER = MSG%STATTYPE(POS+0_JPIB_K :POS+1_JPIB_K ) - COP = MSG%STATTYPE(POS+2_JPIB_K :POS+3_JPIB_K ) - - ! Validate period and operation - PP_TRYCALL(ERRFLAG_INVALID_PERIOD) IS_VALID_PERIOD( CPER, BVALIDPERIOD, HOOKS ) - PP_TRYCALL(ERRFLAG_INVALID_OPERATION) IS_VALID_OPERATION( COP, BVALIDOPERATION, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.BVALIDPERIOD, ERRFLAG_INVALID_PERIOD ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.BVALIDOPERATION, ERRFLAG_INVALID_OPERATION ) - - ! Convert to enumerators - PP_TRYCALL(ERRFLAG_CONVERT_PERIOD) CTYPE_OF_PERIOD2ITYPE_OF_PERIOD( CPER, IPER, HOOKS ) - PP_TRYCALL(ERRFLAG_CONVERT_OPERATION) CTYPE_OF_STATISTICAL_PROCESS2ITYPE_OF_STATISTICAL_PROCESS( COP, IOP, HOOKS ) - - ! Store values - STATTYPE(I,1) = IPER - STATTYPE(I,2) = IOP - - POS = POS + 4_JPIB_K - IF ( I .LT. NBLOCKS ) THEN - PP_DEBUG_CRITICAL_COND_THROW( MSG%STATTYPE(POS:POS) .NE. '_', ERRFLAG_INVALID_STATTYPE_FORMAT ) - POS = POS + 1_JPIB_K - ENDIF - - ENDDO - - ENDIF - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_GET_NUMBER_OF_TIMELOOPS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get number of timeloops from MARS message' ) - CASE ( ERRFLAG_WRONG_STATTYPE_DIMENSIONS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'wrong stattype dimensions' ) - CASE ( ERRFLAG_INVALID_PERIOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid period in stattype' ) - CASE ( ERRFLAG_INVALID_OPERATION ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid operation in stattype' ) - CASE ( ERRFLAG_INVALID_STATTYPE_FORMAT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid stattype format' ) - CASE ( ERRFLAG_CONVERT_PERIOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert period from character to integer representation' ) - CASE ( ERRFLAG_CONVERT_OPERATION ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert operation from character to integer representation' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PARSE_STATYPE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GET_GRIB2_TIME_DESCRIPTION_FROM_MARS' -PP_THREAD_SAFE FUNCTION GET_GRIB2_TIME_DESCRIPTION_FROM_MARS( & -& MSG, PAR, OUTER_OP, TIME_DESCRIPTION, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - INTEGER(KIND=JPIB_K), INTENT(IN) :: OUTER_OP - TYPE(STATISTICAL_PROCESSING_T), INTENT(OUT) :: TIME_DESCRIPTION - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: I - INTEGER(KIND=JPIB_K) :: TMP - INTEGER(KIND=JPIB_K) :: NBLOCKS - INTEGER(KIND=JPIB_K) :: NTIME_LOOPS - INTEGER(KIND=JPIB_K) :: END_YEAR - INTEGER(KIND=JPIB_K) :: END_MONTH - INTEGER(KIND=JPIB_K) :: END_DATE - INTEGER(KIND=JPIB_K) :: END_TIME - INTEGER(KIND=JPIB_K), DIMENSION(MAX_STATS,2) :: STATTYPE - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARSE_STATYPE = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNEXPECTED_NUMBER_OF_TIMELOOPS = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_TIME_ENUM = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_PERIOD_IN_HOURS = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_COMPUTE_END_DATETIME = 5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize output - TIME_DESCRIPTION%NUMBER_OF_TIME_RANGES = -1_JPIB_K - TIME_DESCRIPTION%TYPE_OF_STATISTICAL_PROCESSING = -1_JPIB_K - TIME_DESCRIPTION%TYPE_OF_TIME_INCREMENT = -1_JPIB_K - TIME_DESCRIPTION%INDICATOR_OF_UNIT_FOR_TIME_RANGE = -1_JPIB_K - TIME_DESCRIPTION%LENGTH_OF_TIME_RANGE = -1_JPIB_K - TIME_DESCRIPTION%INDICATOR_OF_UNIT_FOR_TIME_INCREMENT = -1_JPIB_K - TIME_DESCRIPTION%LENGTH_OF_TIME_INCREMENT = -1_JPIB_K - - ! Compute end date/time - PP_TRYCALL(ERRFLAG_COMPUTE_END_DATETIME) & -& COMPUTE_OFFSET_DATETIME( MSG, MSG%STEP*3600_JPIB_K, END_DATE, END_TIME, HOOKS, YEAR=END_YEAR, MONTH=END_MONTH ) - - ! Parse statype - PP_TRYCALL(ERRFLAG_PARSE_STATYPE) & -& PARSE_STATYPE( MSG, STATTYPE, NBLOCKS, NTIME_LOOPS, HOOKS ) - - ! Error handling (basic dimensional checks) - ! If number of time loops is lower than 1 something went wrong - ! if it is 0 then is not a statistics - ! if it is lower than 0 then it is an error - PP_DEBUG_CRITICAL_COND_THROW( NTIME_LOOPS .LT. 1_JPIB_K, ERRFLAG_UNEXPECTED_NUMBER_OF_TIMELOOPS ) - PP_DEBUG_CRITICAL_COND_THROW( NTIME_LOOPS .GT. 2_JPIB_K, ERRFLAG_UNEXPECTED_NUMBER_OF_TIMELOOPS ) - - ! Fill time description - TIME_DESCRIPTION%NUMBER_OF_TIME_RANGES = NTIME_LOOPS - DO I = 1, NTIME_LOOPS - IF ( I .EQ. NTIME_LOOPS ) THEN ! Last / inner loop - TIME_DESCRIPTION%TYPE_OF_STATISTICAL_PROCESSING(I) = OUTER_OP - TIME_DESCRIPTION%TYPE_OF_TIME_INCREMENT(I) = 2_JPIB_K ! Should be always 2 for multIO - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_TIME_ENUM) INDICATOR_OF_UNIT_FOR_TIME( 'h', TIME_DESCRIPTION%INDICATOR_OF_UNIT_FOR_TIME_RANGE(I), HOOKS ) - TIME_DESCRIPTION%LENGTH_OF_TIME_RANGE(I) = MSG%TIMESPAN ! TimeSpan is in hours - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_TIME_ENUM) INDICATOR_OF_UNIT_FOR_TIME( 's', TIME_DESCRIPTION%INDICATOR_OF_UNIT_FOR_TIME_INCREMENT(I), HOOKS ) - TIME_DESCRIPTION%LENGTH_OF_TIME_INCREMENT(I) = INT(PAR%TIME%LENGTH_OF_TIME_STEP_IN_SECONDS_, KIND=JPIB_K) - - ELSEIF ( I .LT. NTIME_LOOPS ) THEN ! Iterate over stattypes - TIME_DESCRIPTION%TYPE_OF_STATISTICAL_PROCESSING(I) = STATTYPE(I,2) - TIME_DESCRIPTION%TYPE_OF_TIME_INCREMENT(I) = 2_JPIB_K ! Should be always 2 for multIO - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_TIME_ENUM) INDICATOR_OF_UNIT_FOR_TIME( 'h', TIME_DESCRIPTION%INDICATOR_OF_UNIT_FOR_TIME_RANGE(I), HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_PERIOD_IN_HOURS) PERIOD_TO_HOURS( STATTYPE(I,1), TIME_DESCRIPTION%LENGTH_OF_TIME_RANGE(I), END_YEAR, END_MONTH, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_TIME_ENUM) INDICATOR_OF_UNIT_FOR_TIME( 's', TIME_DESCRIPTION%INDICATOR_OF_UNIT_FOR_TIME_INCREMENT(I), HOOKS ) - - ! Set the timeIncrement from lengthOfTimeRange of the next inner-loop - IF ( I .EQ. NTIME_LOOPS-1_JPIB_K ) THEN - ! If we iterate the last stattype, timeIncrement is timespan of the inner loop (from param/timespan) - TIME_DESCRIPTION%LENGTH_OF_TIME_INCREMENT(I) = MSG%TIMESPAN*3600_JPIB_K - ELSE - ! Otherwise, timeIncrement is timespan of the next stattype - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_PERIOD_IN_HOURS) PERIOD_TO_HOURS( STATTYPE(I+1,1), TMP, END_YEAR, END_MONTH, HOOKS ) - TIME_DESCRIPTION%LENGTH_OF_TIME_INCREMENT(I) = TMP*3600_JPIB_K - ENDIF - ENDIF - ENDDO - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARSE_STATYPE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to parse stattype from MARS message' ) - CASE ( ERRFLAG_UNEXPECTED_NUMBER_OF_TIMELOOPS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unexpected number of timeloops' ) - CASE ( ERRFLAG_UNABLE_TO_GET_TIME_ENUM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to get time enumerator from string representation' ) - CASE ( ERRFLAG_UNABLE_TO_GET_PERIOD_IN_HOURS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert period to hours' ) - CASE ( ERRFLAG_COMPUTE_END_DATETIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute end date/time' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GET_GRIB2_TIME_DESCRIPTION_FROM_MARS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'IS_LOWERCASE' -PP_THREAD_SAFE FUNCTION IS_LOWERCASE( & -& STR, BLOWERCASE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CHARACTER(LEN=*), INTENT(IN) :: STR - LOGICAL, INTENT(OUT) :: BLOWERCASE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: C - INTEGER(KIND=JPIB_K) :: I - - !> Error flags - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the string is lowercase - BLOWERCASE = .TRUE. - checkLowercase: DO I = 1, LEN_TRIM(STR) - C = IACHAR(STR(I:I)) - IF ( C .LT. IACHAR('a') .OR. C .GT. IACHAR('z') ) THEN - BLOWERCASE = .FALSE. - EXIT checkLowercase - ENDIF - ENDDO checkLowercase - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -END FUNCTION IS_LOWERCASE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'INDICATOR_OF_UNIT_FOR_TIME' -PP_THREAD_SAFE FUNCTION INDICATOR_OF_UNIT_FOR_TIME( & -& STR, TIME_ENUM, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CHARACTER(LEN=*), INTENT(IN) :: STR - INTEGER(KIND=JPIB_K), INTENT(OUT) :: TIME_ENUM - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_TIME_UNIT = 1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the string is lowercase - SELECT CASE ( TRIM(STR) ) - - CASE ( 'mi', 'minutes' ) - TIME_ENUM = 0_JPIB_K - - CASE ( 'h', 'hours' ) - TIME_ENUM = 1_JPIB_K - - CASE ( 'd', 'days' ) - TIME_ENUM = 2_JPIB_K - - CASE ( 'mo', 'months' ) - TIME_ENUM = 3_JPIB_K - - CASE ( 'y', 'years' ) - TIME_ENUM = 4_JPIB_K - - CASE ( 'de', 'decades' ) - TIME_ENUM = 5_JPIB_K - - CASE ( 'n', 'normal' ) - TIME_ENUM = 6_JPIB_K - - CASE ( 'c', 'centuries' ) - TIME_ENUM = 7_JPIB_K - - CASE ( 's', 'seconds' ) - TIME_ENUM = 13_JPIB_K - - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_TIME_UNIT ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNKNOWN_TIME_UNIT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unknown time unit' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION INDICATOR_OF_UNIT_FOR_TIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'IS_VALID_PERIOD' -PP_THREAD_SAFE FUNCTION IS_VALID_PERIOD( & -& STR, BVALIDPERIOD, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CHARACTER(LEN=2), INTENT(IN) :: STR - LOGICAL, INTENT(OUT) :: BVALIDPERIOD - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the operation is valid - SELECT CASE ( STR ) - CASE ( 'da', 'mo' ) - BVALIDPERIOD = .TRUE. - CASE DEFAULT - BVALIDPERIOD = .FALSE. - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -END FUNCTION IS_VALID_PERIOD -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'PERIOD_TO_HOURS' -PP_THREAD_SAFE FUNCTION PERIOD_TO_HOURS( & -& PERIOD_ID, HOURS, YEAR, MONTH, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PERIOD_DAILY_E - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PERIOD_MONTHLY_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - INTEGER(KIND=JPIB_K), INTENT(IN) :: PERIOD_ID - INTEGER(KIND=JPIB_K), INTENT(OUT) :: HOURS - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(IN) :: YEAR - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(IN) :: MONTH - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_PERIOD = 1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the operation is valid - SELECT CASE ( PERIOD_ID ) - CASE ( TYPE_OF_PERIOD_DAILY_E ) - HOURS = 24 - CASE ( TYPE_OF_PERIOD_MONTHLY_E ) - IF ( PRESENT(YEAR) .AND. PRESENT(MONTH) ) THEN - SELECT CASE ( MONTH ) - CASE ( 1, 3, 5, 7, 8, 10, 12 ) - HOURS = 744 - CASE ( 4, 6, 9, 11 ) - HOURS = 720 - CASE ( 2 ) - IF ( MOD(YEAR,4) == 0 ) THEN ! Julian calendar -! .AND. ( MOD(YEAR,100) /= 0 .OR. MOD(YEAR,400) == 0 ) ) THEN ! Gregorian calendar - HOURS = 696 - ELSE - HOURS = 672 - ENDIF - CASE DEFAULT - PP_DEBUG_CRITICAL_THROW( ERRFLAG_INVALID_PERIOD ) - END SELECT - ELSE - ! If year and month are not provided assume a month of 30 days - HOURS = 720 - ENDIF - CASE Default - PP_DEBUG_CRITICAL_THROW( ERRFLAG_INVALID_PERIOD ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_INVALID_PERIOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unknown period' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION PERIOD_TO_HOURS -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'IS_VALID_OPERATION' -PP_THREAD_SAFE FUNCTION IS_VALID_OPERATION( & -& STR, BVALIDOPERATION, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CHARACTER(LEN=2), INTENT(IN) :: STR - LOGICAL, INTENT(OUT) :: BVALIDOPERATION - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the operation is valid - SELECT CASE ( STR ) - CASE ( 'av', 'mn', 'mx', 'sd' ) - BVALIDOPERATION = .TRUE. - CASE DEFAULT - BVALIDOPERATION = .FALSE. - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - - -END FUNCTION IS_VALID_OPERATION -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MONTH_TO_HOURS_JULIAN' -PP_THREAD_SAFE FUNCTION MONTH_TO_HOURS_JULIAN( & -& YEAR, MONTH, HOURS, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - INTEGER(KIND=JPIB_K), INTENT(IN) :: YEAR - INTEGER(KIND=JPIB_K), INTENT(IN) :: MONTH ! 1..12 - INTEGER(KIND=JPIB_K), INTENT(OUT) :: HOURS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Locals - INTEGER(KIND=JPIB_K) :: DAYS - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALID_MONTH = 1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check input - PP_DEBUG_CRITICAL_COND_THROW( MONTH .LT. 1_JPIB_K, ERRFLAG_INVALID_MONTH ) - PP_DEBUG_CRITICAL_COND_THROW( MONTH .GT. 12_JPIB_K, ERRFLAG_INVALID_MONTH ) - - ! Compute days in month (Julian rule: leap if mod(year,4)==0) - SELECT CASE ( MONTH ) - CASE ( 1_JPIB_K, 3_JPIB_K, 5_JPIB_K, 7_JPIB_K, 8_JPIB_K, 10_JPIB_K, 12_JPIB_K ) - DAYS = 31_JPIB_K - CASE ( 4_JPIB_K, 6_JPIB_K, 9_JPIB_K, 11_JPIB_K ) - DAYS = 30_JPIB_K - CASE ( 2_JPIB_K ) - IF (MOD(YEAR, 4_JPIB_K) == 0_JPIB_K) THEN - DAYS = 29_JPIB_K - ELSE - DAYS = 28_JPIB_K - END IF - END SELECT - - HOURS = DAYS * 24_JPIB_K - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_INVALID_MONTH ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid month: must be in 1..12' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MONTH_TO_HOURS_JULIAN -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'COMPUTE_OFFSET_DATETIME' -PP_THREAD_SAFE FUNCTION COMPUTE_OFFSET_DATETIME( & -& MSG, OFFSET_FROM_START_IN_SECONDS, DATE, TIME, HOOKS, & -& YEAR, MONTH, DAY, HOUR, MINUTE, SECOND ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: DATETIME_UTILS_MOD, ONLY: PACK_YYYYMMDD - USE :: DATETIME_UTILS_MOD, ONLY: PACK_HHMMSS - USE :: DATETIME_UTILS_MOD, ONLY: PACK_HHMM - USE :: DATETIME_UTILS_MOD, ONLY: UNPACK_YYYYMMDD - USE :: DATETIME_UTILS_MOD, ONLY: UNPACK_HHMMSS - USE :: DATETIME_UTILS_MOD, ONLY: UNPACK_HHMM - USE :: DATETIME_UTILS_MOD, ONLY: SECONDS2DAYS - - !> Symbols imported from other libraries - USE :: ECCODES, ONLY: CODES_DATETIME_TO_JULIAN - USE :: ECCODES, ONLY: CODES_JULIAN_TO_DATETIME - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET_FROM_START_IN_SECONDS - INTEGER(KIND=JPIB_K), INTENT(OUT) :: DATE ! YYYYMMDD - INTEGER(KIND=JPIB_K), INTENT(OUT) :: TIME ! HHMMSS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: YEAR - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: MONTH - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: DAY - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: HOUR - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: MINUTE - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: SECOND - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K) :: YEAR_LOC - INTEGER(KIND=JPIB_K) :: MONTH_LOC - INTEGER(KIND=JPIB_K) :: DAY_LOC - INTEGER(KIND=JPIB_K) :: HOUR_LOC - INTEGER(KIND=JPIB_K) :: MINUTE_LOC - INTEGER(KIND=JPIB_K) :: SECOND_LOC - INTEGER :: STAT - REAL(KIND=JPRB_K) :: START_JULIAN_DATETIME - REAL(KIND=JPRB_K) :: END_JULIAN_DATETIME - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_COMPUTE_JULIAN = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_COMPUTE_CURRENT_TIME = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PACK_DATE = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_PACK_TIME = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_UNPACK_DATE = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_UNPACK_TIME = 6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Unpack start date/time - PP_TRYCALL(ERRFLAG_UNABLE_TO_UNPACK_DATE) UNPACK_YYYYMMDD( MSG%DATE, YEAR_LOC, MONTH_LOC, DAY_LOC, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_UNPACK_TIME) UNPACK_HHMMSS( MSG%TIME, HOUR_LOC, MINUTE_LOC, SECOND_LOC, HOOKS ) - - ! Compute current time - CALL CODES_DATETIME_TO_JULIAN( & -& YEAR_LOC, MONTH_LOC, DAY_LOC, HOUR_LOC, MINUTE_LOC, SECOND_LOC, START_JULIAN_DATETIME, STATUS=STAT ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_COMPUTE_JULIAN ) - - ! Compute current time in seconds - END_JULIAN_DATETIME = START_JULIAN_DATETIME + REAL(OFFSET_FROM_START_IN_SECONDS, KIND=JPRB_K)*SECONDS2DAYS - - CALL CODES_JULIAN_TO_DATETIME( & -& END_JULIAN_DATETIME, YEAR_LOC, MONTH_LOC, DAY_LOC, HOUR_LOC, MINUTE_LOC, SECOND_LOC, STATUS=STAT ) - PP_DEBUG_CRITICAL_COND_THROW( STAT .NE. 0_JPIB_K, ERRFLAG_UNABLE_TO_COMPUTE_CURRENT_TIME ) - - ! Pack end date/time - PP_TRYCALL(ERRFLAG_UNABLE_TO_PACK_DATE) PACK_YYYYMMDD( YEAR_LOC, MONTH_LOC, DAY_LOC, DATE, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_PACK_TIME) PACK_HHMMSS( HOUR_LOC, MINUTE_LOC, SECOND_LOC, TIME, HOOKS ) - - ! Optionally return unpacked values - IF ( PRESENT(YEAR) ) YEAR = YEAR_LOC - IF ( PRESENT(MONTH) ) MONTH = MONTH_LOC - IF ( PRESENT(DAY) ) DAY = DAY_LOC - IF ( PRESENT(HOUR) ) HOUR = HOUR_LOC - IF ( PRESENT(MINUTE) ) MINUTE = MINUTE_LOC - IF ( PRESENT(SECOND) ) SECOND = SECOND_LOC - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_COMPUTE_JULIAN ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute julian day' ) - CASE ( ERRFLAG_UNABLE_TO_COMPUTE_CURRENT_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute current time' ) - CASE ( ERRFLAG_UNABLE_TO_PACK_DATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to pack date' ) - CASE ( ERRFLAG_UNABLE_TO_PACK_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to pack time' ) - CASE ( ERRFLAG_UNABLE_TO_UNPACK_DATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to unpack date' ) - CASE ( ERRFLAG_UNABLE_TO_UNPACK_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to unpack time' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION COMPUTE_OFFSET_DATETIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'COMPUTE_FORECAST_DATETIME' -PP_THREAD_SAFE FUNCTION COMPUTE_FORECAST_DATETIME( & -& MSG, FORECAST_DATE, FORECAST_TIME, HOOKS, & -& YEAR, MONTH, DAY, HOUR, MINUTE, SECOND ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PERIOD_MONTHLY_E - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - INTEGER(KIND=JPIB_K), INTENT(OUT) :: FORECAST_DATE ! YYYYMMDD - INTEGER(KIND=JPIB_K), INTENT(OUT) :: FORECAST_TIME ! HHMMSS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: YEAR - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: MONTH - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: DAY - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: HOUR - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: MINUTE - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: SECOND - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIMESPAN - LOGICAL :: HAS_STATTYPE - INTEGER(KIND=JPIB_K) :: OFFSET_IN_SECONDS - INTEGER(KIND=JPIB_K) :: FYEAR - INTEGER(KIND=JPIB_K) :: FMONTH - INTEGER(KIND=JPIB_K) :: FDAY - INTEGER(KIND=JPIB_K) :: FHOUR - INTEGER(KIND=JPIB_K) :: FMINUTE - INTEGER(KIND=JPIB_K) :: FSECOND - INTEGER(KIND=JPIB_K) :: END_DATE - INTEGER(KIND=JPIB_K) :: END_TIME - INTEGER(KIND=JPIB_K) :: END_YEAR - INTEGER(KIND=JPIB_K) :: END_MONTH - INTEGER(KIND=JPIB_K) :: TMP - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNSUPPORTED_CASE = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_COMPUTE_END_DATETIME = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_PERIOD_IN_HOURS = 3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check the cases - HAS_TIMESPAN = .FALSE. - HAS_STATTYPE = .FALSE. - - ! Check for timespan and stattype - IF ( MSG%TIMESPAN .NE. UNDEF_PARAM_E ) THEN - HAS_TIMESPAN = .TRUE. - END IF - - IF ( MSG%STATTYPE .NE. REPEAT('*',32) ) THEN - HAS_STATTYPE = .TRUE. - END IF - - ! Compute the offset - IF ( .NOT.HAS_TIMESPAN .AND. .NOT. HAS_STATTYPE ) THEN - ! It is not a statistics, This should be an error forecast time equal to end time - OFFSET_IN_SECONDS = MSG%STEP*3600_JPIB_K - ELSEIF ( HAS_TIMESPAN .AND. .NOT. HAS_STATTYPE ) THEN - ! This is the standard case of single loop statistics with timespan - OFFSET_IN_SECONDS = MAX( (MSG%STEP - MSG%TIMESPAN)*3600_JPIB_K, 0_JPIB_K ) - ELSEIF ( HAS_TIMESPAN .AND. HAS_STATTYPE ) then - IF ( MSG%STATTYPE(1:2) .EQ. 'mo' ) THEN - ! Compute end date/time - PP_TRYCALL(ERRFLAG_COMPUTE_END_DATETIME) & -& COMPUTE_OFFSET_DATETIME( MSG, MSG%STEP*3600_JPIB_K, END_DATE, END_TIME, HOOKS, YEAR=END_YEAR, MONTH=END_MONTH ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_GET_PERIOD_IN_HOURS) PERIOD_TO_HOURS( TYPE_OF_PERIOD_MONTHLY_E, TMP, END_YEAR, END_MONTH, HOOKS ) - ELSEIF ( MSG%STATTYPE(1:2) .EQ. 'da' ) THEN - OFFSET_IN_SECONDS = MAX( (MSG%STEP - TMP)*3600_JPIB_K, 0_JPIB_K ) - ELSE - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNSUPPORTED_CASE ) - ENDIF - ELSE - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNSUPPORTED_CASE ) - ENDIF - - ! TODO: in case of monthly statistics need to check. - - ! Compute forecast date/time - PP_TRYCALL(ERRFLAG_COMPUTE_END_DATETIME) & -& COMPUTE_OFFSET_DATETIME( MSG, OFFSET_IN_SECONDS, FORECAST_DATE, FORECAST_TIME, HOOKS, & -& YEAR=FYEAR, MONTH=FMONTH, DAY=FDAY, HOUR=FHOUR, MINUTE=FMINUTE, SECOND=FSECOND ) - - ! Handle optional outputs - IF ( PRESENT(YEAR) ) YEAR = FYEAR - IF ( PRESENT(MONTH) ) MONTH = FMONTH - IF ( PRESENT(DAY) ) DAY = FDAY - IF ( PRESENT(HOUR) ) HOUR = FHOUR - IF ( PRESENT(MINUTE) ) MINUTE = FMINUTE - IF ( PRESENT(SECOND) ) SECOND = FSECOND - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNSUPPORTED_CASE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unsupported case' ) - CASE ( ERRFLAG_COMPUTE_END_DATETIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute end date/time' ) - CASE ( ERRFLAG_UNABLE_TO_GET_PERIOD_IN_HOURS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert period to hours' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION COMPUTE_FORECAST_DATETIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'COMPUTE_END_DATETIME' -PP_THREAD_SAFE FUNCTION COMPUTE_END_DATETIME( & -& MSG, END_DATE, END_TIME, HOOKS, & -& YEAR, MONTH, DAY, HOUR, MINUTE, SECOND ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: ENUMERATORS_MOD, ONLY: TYPE_OF_PERIOD_MONTHLY_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - INTEGER(KIND=JPIB_K), INTENT(OUT) :: END_DATE ! YYYYMMDD - INTEGER(KIND=JPIB_K), INTENT(OUT) :: END_TIME ! HHMMSS - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: YEAR - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: MONTH - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: DAY - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: HOUR - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: MINUTE - INTEGER(KIND=JPIB_K), OPTIONAL, INTENT(OUT) :: SECOND - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIMESPAN - LOGICAL :: HAS_STATTYPE - INTEGER(KIND=JPIB_K) :: OFFSET_IN_SECONDS - INTEGER(KIND=JPIB_K) :: EYEAR - INTEGER(KIND=JPIB_K) :: EMONTH - INTEGER(KIND=JPIB_K) :: EDAY - INTEGER(KIND=JPIB_K) :: EHOUR - INTEGER(KIND=JPIB_K) :: EMINUTE - INTEGER(KIND=JPIB_K) :: ESECOND - INTEGER(KIND=JPIB_K) :: TMP - - !> Error flags - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNSUPPORTED_CASE = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_COMPUTE_END_DATETIME = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_GET_PERIOD_IN_HOURS = 3_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check the cases - HAS_TIMESPAN = .FALSE. - HAS_STATTYPE = .FALSE. - - ! End time - OFFSET_IN_SECONDS = MSG%STEP*3600_JPIB_K - - ! Compute forecast date/time - PP_TRYCALL(ERRFLAG_COMPUTE_END_DATETIME) & -& COMPUTE_OFFSET_DATETIME( MSG, OFFSET_IN_SECONDS, END_DATE, END_TIME, HOOKS, & -& YEAR=EYEAR, MONTH=EMONTH, DAY=EDAY, HOUR=EHOUR, MINUTE=EMINUTE, SECOND=ESECOND ) - - ! Handle optional outputs - IF ( PRESENT(YEAR) ) YEAR = EYEAR - IF ( PRESENT(MONTH) ) MONTH = EMONTH - IF ( PRESENT(DAY) ) DAY = EDAY - IF ( PRESENT(HOUR) ) HOUR = EHOUR - IF ( PRESENT(MINUTE) ) MINUTE = EMINUTE - IF ( PRESENT(SECOND) ) SECOND = ESECOND - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNSUPPORTED_CASE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unsupported case' ) - CASE ( ERRFLAG_COMPUTE_END_DATETIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to compute end date/time' ) - CASE ( ERRFLAG_UNABLE_TO_GET_PERIOD_IN_HOURS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert period to hours' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION COMPUTE_END_DATETIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_STATTYPE_UTILS_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_000_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_000_mod.F90 deleted file mode 100644 index e9adb9867..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_000_mod.F90 +++ /dev/null @@ -1,1891 +0,0 @@ -!> -!> @file grib2_section4_000_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_000_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_000_INIT -!> - @see GRIB2_SECTION4_000_ALLOCATE -!> - @see GRIB2_SECTION4_000_PRESET -!> - @see GRIB2_SECTION4_000_RUNTIME -!> - @see GRIB2_SECTION4_000_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_000_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_000_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_000_MOD' -MODULE GRIB2_SECTION4_000_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_000_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_000_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 0_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_000_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_000_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_000_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_000_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_000_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_000_PRINT - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_000_BUILD_MODEL_HANDLER - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_000_BUILD_TIME_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_000_BUILD_PARAM_HANDLER - - !> - !> @brief Build the level configurator object - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR => GRIB2_SECTION4_000_BUILD_LEVEL_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_000_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_000_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_000_INIT -!> @see GRIB2_SECTION4_000_ALLOCATE -!> @see GRIB2_SECTION4_000_PRESET -!> @see GRIB2_SECTION4_000_RUNTIME -!> @see GRIB2_SECTION4_000_TO_BE_ENCODED -!> @see GRIB2_SECTION4_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_000_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_000_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 0_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.0' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize paramId handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_000_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_000_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_000_ALLOCATE -!> @see GRIB2_SECTION4_000_INIT -!> @see GRIB2_SECTION4_000_PRESET -!> @see GRIB2_SECTION4_000_RUNTIME -!> @see GRIB2_SECTION4_000_TO_BE_ENCODED -!> @see GRIB2_SECTION4_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_000_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_000_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_000_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_000_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_000_PRESET -!> @see GRIB2_SECTION4_000_ALLOCATE -!> @see GRIB2_SECTION4_000_INIT -!> @see GRIB2_SECTION4_000_RUNTIME -!> @see GRIB2_SECTION4_000_TO_BE_ENCODED -!> @see GRIB2_SECTION4_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_000_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_000_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_000_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_000_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_000_RUNTIME -!> @see GRIB2_SECTION4_000_ALLOCATE -!> @see GRIB2_SECTION4_000_INIT -!> @see GRIB2_SECTION4_000_PRESET -!> @see GRIB2_SECTION4_000_TO_BE_ENCODED -!> @see GRIB2_SECTION4_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_000_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_000_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_000_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_000_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_000_INIT -!> @see GRIB2_SECTION4_000_ALLOCATE -!> @see GRIB2_SECTION4_000_PRESET -!> @see GRIB2_SECTION4_000_RUNTIME -!> @see GRIB2_SECTION4_000_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_000_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_000_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free instant' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free level' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_000_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_000_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_000_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_000_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_000_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=8_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_000_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 000. -!> -!> This function constructs the param handler for GRIB2 section 4, template 000, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_000_INIT -!> @see GRIB2_SECTION4_000_ALLOCATE -!> @see GRIB2_SECTION4_000_PRESET -!> @see GRIB2_SECTION4_000_RUNPARAM -!> @see GRIB2_SECTION4_000_TO_BE_ENCODED -!> @see GRIB2_SECTION4_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_000_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_000_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_000_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 000. -!> -!> This function constructs the level handler for GRIB2 section 4, template 000, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_000_INIT -!> @see GRIB2_SECTION4_000_ALLOCATE -!> @see GRIB2_SECTION4_000_PRESET -!> @see GRIB2_SECTION4_000_RUNLEVEL -!> @see GRIB2_SECTION4_000_TO_BE_ENCODED -!> @see GRIB2_SECTION4_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_000_BUILD_LEVEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_000_BUILD_LEVEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_000_BUILD_LEVEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_000_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_000_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_000_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_000_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_000_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_000_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_000_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_001_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_001_mod.F90 deleted file mode 100644 index aaa3b3b2a..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_001_mod.F90 +++ /dev/null @@ -1,2104 +0,0 @@ -!> -!> @file G2S4_001_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `G2S4_001_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_001_INIT -!> - @see G2S4_001_ALLOCATE -!> - @see G2S4_001_PRESET -!> - @see G2S4_001_RUNTIME -!> - @see G2S4_001_TO_BE_ENCODED -!> - @see G2S4_001_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_001_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_001_MOD' -MODULE GRIB2_SECTION4_001_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Name of the object (to be used in the register) -CHARACTER(LEN=*), PARAMETER :: G2S4_001_NAME = 'g2s4::001' - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `G2S4_001_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: G2S4_001_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 1_JPIB_K - - !> Name of the sub sections - CHARACTER(LEN=64) :: MODEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: TIME_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: LEVEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: PARAMID_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: ENSEMBLE_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_001_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_001_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_001_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_001_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_001_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => G2S4_001_PRINT - - - - !> - !> @brief Build the model configurator object from yaml configuration - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR_CFG => G2S4_001_BUILD_MODEL_HANDLER_CFG - - - !> - !> @brief Build the time configurator object from yaml configuration - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR_CFG => G2S4_001_BUILD_TIME_HANDLER_CFG - - !> - !> @brief Build the param configurator object from yaml configuration - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR_CFG => G2S4_001_BUILD_PARAM_HANDLER_CFG - - !> - !> @brief Build the level configurator object from yaml configuration - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR_CFG => G2S4_001_BUILD_LEVEL_HANDLER_CFG - - !> - !> @brief Build the ensemble configurator object from yaml configuration - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR_CFG => G2S4_001_BUILD_ENSEMBLE_HANDLER_CFG - - -END TYPE - - -!> -!> Public symbols (procedures) -PUBLIC :: G2S4_001_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_001_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_001_INIT -!> @see G2S4_001_ALLOCATE -!> @see G2S4_001_PRESET -!> @see G2S4_001_RUNTIME -!> @see G2S4_001_TO_BE_ENCODED -!> @see G2S4_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_001_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_001_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_001_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 1_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.1' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_001_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_001_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_001_ALLOCATE -!> @see G2S4_001_INIT -!> @see G2S4_001_PRESET -!> @see G2S4_001_RUNTIME -!> @see G2S4_001_TO_BE_ENCODED -!> @see G2S4_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_001_ALLOCATE' -PP_THREAD_SAFE FUNCTION G2S4_001_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_001_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Allocate time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_001_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_001_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_001_PRESET -!> @see G2S4_001_ALLOCATE -!> @see G2S4_001_INIT -!> @see G2S4_001_RUNTIME -!> @see G2S4_001_TO_BE_ENCODED -!> @see G2S4_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_001_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_001_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_001_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_001_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_001_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_001_RUNTIME -!> @see G2S4_001_ALLOCATE -!> @see G2S4_001_INIT -!> @see G2S4_001_PRESET -!> @see G2S4_001_TO_BE_ENCODED -!> @see G2S4_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_001_RUNTIME' -PP_THREAD_SAFE FUNCTION G2S4_001_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_001_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_001_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_001_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_001_INIT -!> @see G2S4_001_ALLOCATE -!> @see G2S4_001_PRESET -!> @see G2S4_001_RUNTIME -!> @see G2S4_001_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_001_FREE' -PP_THREAD_SAFE FUNCTION G2S4_001_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_001_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free instant' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free level' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free ensemble' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_001_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_001_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_001_PRINT' -PP_THREAD_SAFE FUNCTION G2S4_001_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_001_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_001_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 001. -!> -!> This function constructs the param handler for GRIB2 section 4, template 001, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_001_INIT -!> @see G2S4_001_ALLOCATE -!> @see G2S4_001_PRESET -!> @see G2S4_001_RUNPARAM -!> @see G2S4_001_TO_BE_ENCODED -!> @see G2S4_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_001_BUILD_PARAM_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_001_BUILD_PARAM_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_001_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Get the name of the param-configurator section - !! TODO - - !> Build the key to be used for the param configurator section - !! TODO - - !> Build the param configurator object - !! TODO - - !> Initialize the param configurator object - !! TODO - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_001_BUILD_PARAM_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 001. -!> -!> This function constructs the level handler for GRIB2 section 4, template 001, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_001_INIT -!> @see G2S4_001_ALLOCATE -!> @see G2S4_001_PRESET -!> @see G2S4_001_RUNLEVEL -!> @see G2S4_001_TO_BE_ENCODED -!> @see G2S4_001_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_001_BUILD_LEVEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_001_BUILD_LEVEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_001_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_001_BUILD_LEVEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_001_BUILD_ENSEMBLE_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_001_BUILD_ENSEMBLE_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_001_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_001_BUILD_ENSEMBLE_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_001_BUILD_TIME_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_001_BUILD_TIME_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_001_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_001_BUILD_TIME_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_001_BUILD_MODEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_001_BUILD_MODEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_001_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_001_BUILD_MODEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_001_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_008_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_008_mod.F90 deleted file mode 100644 index 514f9030d..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_008_mod.F90 +++ /dev/null @@ -1,1917 +0,0 @@ -!> -!> @file grib2_section4_008_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_008_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_008_INIT -!> - @see GRIB2_SECTION4_008_ALLOCATE -!> - @see GRIB2_SECTION4_008_PRESET -!> - @see GRIB2_SECTION4_008_RUNTIME -!> - @see GRIB2_SECTION4_008_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_008_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_008_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_008_MOD' -MODULE GRIB2_SECTION4_008_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_008_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_008_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 8_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_008_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_008_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_008_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_008_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_008_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print information about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_008_PRINT - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_008_BUILD_TIME_HANDLER - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_008_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_008_BUILD_PARAM_HANDLER - - !> - !> @brief Build the level configurator object - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR => GRIB2_SECTION4_008_BUILD_LEVEL_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_008_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_008_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_008_INIT -!> @see GRIB2_SECTION4_008_ALLOCATE -!> @see GRIB2_SECTION4_008_PRESET -!> @see GRIB2_SECTION4_008_RUNTIME -!> @see GRIB2_SECTION4_008_TO_BE_ENCODED -!> @see GRIB2_SECTION4_008_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_008_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_008_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_008_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 8_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.8' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_008_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_008_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_008_ALLOCATE -!> @see GRIB2_SECTION4_008_INIT -!> @see GRIB2_SECTION4_008_PRESET -!> @see GRIB2_SECTION4_008_RUNTIME -!> @see GRIB2_SECTION4_008_TO_BE_ENCODED -!> @see GRIB2_SECTION4_008_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_008_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_008_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_008_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error while using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_008_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_008_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_008_PRESET -!> @see GRIB2_SECTION4_008_ALLOCATE -!> @see GRIB2_SECTION4_008_INIT -!> @see GRIB2_SECTION4_008_RUNTIME -!> @see GRIB2_SECTION4_008_TO_BE_ENCODED -!> @see GRIB2_SECTION4_008_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_008_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_008_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_008_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_008_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_008_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_008_RUNTIME -!> @see GRIB2_SECTION4_008_ALLOCATE -!> @see GRIB2_SECTION4_008_INIT -!> @see GRIB2_SECTION4_008_PRESET -!> @see GRIB2_SECTION4_008_TO_BE_ENCODED -!> @see GRIB2_SECTION4_008_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_008_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_008_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_008_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_008_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_008_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_008_INIT -!> @see GRIB2_SECTION4_008_ALLOCATE -!> @see GRIB2_SECTION4_008_PRESET -!> @see GRIB2_SECTION4_008_RUNTIME -!> @see GRIB2_SECTION4_008_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_008_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_008_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: DESTROY_GRIB2_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_008_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_TIME) DESTROY_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy model configurator' ) - CASE ( ERRFLAG_DESTROY_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy time configurator' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy level configurator' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy paramId configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_008_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_008_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_008_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_008_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_008_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=8_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_008_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Builds the time handler for GRIB2 section 4, template 008. -!> -!> This function constructs the time handler for GRIB2 section 4, template 008, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_008_INIT -!> @see GRIB2_SECTION4_008_ALLOCATE -!> @see GRIB2_SECTION4_008_PRESET -!> @see GRIB2_SECTION4_008_RUNTIME -!> @see GRIB2_SECTION4_008_TO_BE_ENCODED -!> @see GRIB2_SECTION4_008_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_008_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_008_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: MAKE_GRIB2_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_008_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='time-statistics-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_008_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_008_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_008_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_008_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_008_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 008. -!> -!> This function constructs the param handler for GRIB2 section 4, template 008, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_008_INIT -!> @see GRIB2_SECTION4_008_ALLOCATE -!> @see GRIB2_SECTION4_008_PRESET -!> @see GRIB2_SECTION4_008_RUNPARAM -!> @see GRIB2_SECTION4_008_TO_BE_ENCODED -!> @see GRIB2_SECTION4_008_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_008_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_008_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_008_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_008_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 008. -!> -!> This function constructs the level handler for GRIB2 section 4, template 008, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_008_INIT -!> @see GRIB2_SECTION4_008_ALLOCATE -!> @see GRIB2_SECTION4_008_PRESET -!> @see GRIB2_SECTION4_008_RUNLEVEL -!> @see GRIB2_SECTION4_008_TO_BE_ENCODED -!> @see GRIB2_SECTION4_008_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_008_BUILD_LEVEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_008_BUILD_LEVEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_008_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_008_BUILD_LEVEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_008_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_011_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_011_mod.F90 deleted file mode 100644 index 444be4d4e..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_011_mod.F90 +++ /dev/null @@ -1,2113 +0,0 @@ -!> -!> @file grib2_section4_011_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_011_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_011_INIT -!> - @see GRIB2_SECTION4_011_ALLOCATE -!> - @see GRIB2_SECTION4_011_PRESET -!> - @see GRIB2_SECTION4_011_RUNTIME -!> - @see GRIB2_SECTION4_011_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_011_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_011_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_011_MOD' -MODULE GRIB2_SECTION4_011_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_011_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_011_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 11_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_011_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_011_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_011_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_011_RUNTIME - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_011_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_011_PRINT - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_011_BUILD_TIME_HANDLER - - - !> - !> @brief Build the model configurator object - !> - !> This procedure allocates the proper time configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_011_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_011_BUILD_PARAM_HANDLER - - !> - !> @brief Build the level configurator object - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR => GRIB2_SECTION4_011_BUILD_LEVEL_HANDLER - - !> - !> @brief Build the ensemble configurator object - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR => GRIB2_SECTION4_011_BUILD_ENSEMBLE_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_011_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_011_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_011_INIT -!> @see GRIB2_SECTION4_011_ALLOCATE -!> @see GRIB2_SECTION4_011_PRESET -!> @see GRIB2_SECTION4_011_RUNTIME -!> @see GRIB2_SECTION4_011_TO_BE_ENCODED -!> @see GRIB2_SECTION4_011_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_011_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_011_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_011_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 11_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.11' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to model time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_011_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_011_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_011_ALLOCATE -!> @see GRIB2_SECTION4_011_INIT -!> @see GRIB2_SECTION4_011_PRESET -!> @see GRIB2_SECTION4_011_RUNTIME -!> @see GRIB2_SECTION4_011_TO_BE_ENCODED -!> @see GRIB2_SECTION4_011_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_011_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_011_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_011_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - PP_LOG_DEVELOP_STR( 'ALLOCATE SECTION 4.11' ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_011_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_011_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_011_PRESET -!> @see GRIB2_SECTION4_011_ALLOCATE -!> @see GRIB2_SECTION4_011_INIT -!> @see GRIB2_SECTION4_011_RUNTIME -!> @see GRIB2_SECTION4_011_TO_BE_ENCODED -!> @see GRIB2_SECTION4_011_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_011_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_011_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_011_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - PP_LOG_DEVELOP_STR( 'PRESET SECTION 4.11' ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_011_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_011_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_011_RUNTIME -!> @see GRIB2_SECTION4_011_ALLOCATE -!> @see GRIB2_SECTION4_011_INIT -!> @see GRIB2_SECTION4_011_PRESET -!> @see GRIB2_SECTION4_011_TO_BE_ENCODED -!> @see GRIB2_SECTION4_011_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_011_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_011_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_011_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_011_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_011_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_011_INIT -!> @see GRIB2_SECTION4_011_ALLOCATE -!> @see GRIB2_SECTION4_011_PRESET -!> @see GRIB2_SECTION4_011_RUNTIME -!> @see GRIB2_SECTION4_011_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_011_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_011_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: DESTROY_GRIB2_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_011_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_TIME) DESTROY_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy model configurator' ) - CASE ( ERRFLAG_DESTROY_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy time configurator' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy level configurator' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy paramId configurator' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy ensemble configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_011_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_011_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_011_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_011_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_011_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_011_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Builds the time handler for GRIB2 section 4, template 011. -!> -!> This function constructs the time handler for GRIB2 section 4, template 011, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_011_INIT -!> @see GRIB2_SECTION4_011_ALLOCATE -!> @see GRIB2_SECTION4_011_PRESET -!> @see GRIB2_SECTION4_011_RUNTIME -!> @see GRIB2_SECTION4_011_TO_BE_ENCODED -!> @see GRIB2_SECTION4_011_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_011_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_011_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: MAKE_GRIB2_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_011_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='time-statistics-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_011_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_011_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_011_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_011_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_011_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 011. -!> -!> This function constructs the param handler for GRIB2 section 4, template 011, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_011_INIT -!> @see GRIB2_SECTION4_011_ALLOCATE -!> @see GRIB2_SECTION4_011_PRESET -!> @see GRIB2_SECTION4_011_RUNPARAM -!> @see GRIB2_SECTION4_011_TO_BE_ENCODED -!> @see GRIB2_SECTION4_011_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_011_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_011_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_011_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_011_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 011. -!> -!> This function constructs the level handler for GRIB2 section 4, template 011, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_011_INIT -!> @see GRIB2_SECTION4_011_ALLOCATE -!> @see GRIB2_SECTION4_011_PRESET -!> @see GRIB2_SECTION4_011_RUNLEVEL -!> @see GRIB2_SECTION4_011_TO_BE_ENCODED -!> @see GRIB2_SECTION4_011_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_011_BUILD_LEVEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_011_BUILD_LEVEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_011_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_011_BUILD_LEVEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_011_BUILD_ENSEMBLE_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_011_BUILD_ENSEMBLE_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_011_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_011_BUILD_ENSEMBLE_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_011_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_032_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_032_mod.F90 deleted file mode 100644 index dc411171c..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_032_mod.F90 +++ /dev/null @@ -1,1877 +0,0 @@ -!> -!> @file grib2_section4_032_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_032_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_032_INIT -!> - @see GRIB2_SECTION4_032_ALLOCATE -!> - @see GRIB2_SECTION4_032_PRESET -!> - @see GRIB2_SECTION4_032_RUNTIME -!> - @see GRIB2_SECTION4_032_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_032_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_032_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_032_MOD' -MODULE GRIB2_SECTION4_032_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_032_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_032_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 32_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: SATELLITE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_032_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_032_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_032_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_032_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_032_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_032_PRINT - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_032_BUILD_TIME_HANDLER - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_032_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_032_BUILD_PARAM_HANDLER - - !> - !> @brief Build the satellite configurator object - !> - !> This procedure allocates the proper satellite configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_SATELLITE_CONFIGURATOR => GRIB2_SECTION4_032_BUILD_SATELLITE_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_032_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_032_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_032_INIT -!> @see GRIB2_SECTION4_032_ALLOCATE -!> @see GRIB2_SECTION4_032_PRESET -!> @see GRIB2_SECTION4_032_RUNTIME -!> @see GRIB2_SECTION4_032_TO_BE_ENCODED -!> @see GRIB2_SECTION4_032_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_032_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_032_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_032_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_SATELLITE_HANDLER=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 32_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.32' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_SATELLITE_HANDLER) THIS%BUILD_SATELLITE_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize paramId handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_SATELLITE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize satellite handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_032_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_032_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_032_ALLOCATE -!> @see GRIB2_SECTION4_032_INIT -!> @see GRIB2_SECTION4_032_PRESET -!> @see GRIB2_SECTION4_032_RUNTIME -!> @see GRIB2_SECTION4_032_TO_BE_ENCODED -!> @see GRIB2_SECTION4_032_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_032_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_032_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_032_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_SATELLITE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%SATELLITE_), ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_SATELLITE) THIS%SATELLITE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_SATELLITE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate satellite' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_032_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_032_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_032_PRESET -!> @see GRIB2_SECTION4_032_ALLOCATE -!> @see GRIB2_SECTION4_032_INIT -!> @see GRIB2_SECTION4_032_RUNTIME -!> @see GRIB2_SECTION4_032_TO_BE_ENCODED -!> @see GRIB2_SECTION4_032_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_032_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_032_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_032_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_SATELLITE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%SATELLITE_), ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_SATELLITE) THIS%SATELLITE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_SATELLITE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset satellite' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_032_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_032_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_032_RUNTIME -!> @see GRIB2_SECTION4_032_ALLOCATE -!> @see GRIB2_SECTION4_032_INIT -!> @see GRIB2_SECTION4_032_PRESET -!> @see GRIB2_SECTION4_032_TO_BE_ENCODED -!> @see GRIB2_SECTION4_032_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_032_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_032_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_032_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_SATELLITE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%SATELLITE_), ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_SATELLITE) THIS%SATELLITE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_SATELLITE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset satellite' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_032_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_032_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_032_INIT -!> @see GRIB2_SECTION4_032_ALLOCATE -!> @see GRIB2_SECTION4_032_PRESET -!> @see GRIB2_SECTION4_032_RUNTIME -!> @see GRIB2_SECTION4_032_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_032_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_032_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_SATELLITE_FACTORY_MOD, ONLY: DESTROY_GRIB2_SATELLITE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_032_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_SATELLITE=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%SATELLITE_), ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_SATELLITE) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%SATELLITE_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy time' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy model' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy paramId' ) - CASE ( ERRFLAG_DESTROY_SATELLITE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy satellite' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_032_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_032_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_032_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_032_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_032_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_032_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 032. -!> -!> This function constructs the param handler for GRIB2 section 4, template 032, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_032_INIT -!> @see GRIB2_SECTION4_032_ALLOCATE -!> @see GRIB2_SECTION4_032_PRESET -!> @see GRIB2_SECTION4_032_RUNPARAM -!> @see GRIB2_SECTION4_032_TO_BE_ENCODED -!> @see GRIB2_SECTION4_032_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_032_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_032_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_032_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_032_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the satellite handler for GRIB2 section 4, template 032. -!> -!> This function constructs the satellite handler for GRIB2 section 4, template 032, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_032_INIT -!> @see GRIB2_SECTION4_032_ALLOCATE -!> @see GRIB2_SECTION4_032_PRESET -!> @see GRIB2_SECTION4_032_RUNSATELLITE -!> @see GRIB2_SECTION4_032_TO_BE_ENCODED -!> @see GRIB2_SECTION4_032_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_032_BUILD_SATELLITE_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_032_BUILD_SATELLITE_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_SATELLITE_FACTORY_MOD, ONLY: MAKE_GRIB2_SATELLITE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_032_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_SATELLITE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: SATELLITE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: SATELLITE_CONFIGURATOR_NAME='satellite-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_SATELLITE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%SATELLITE_), ERRFLAG_SATELLITE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, SATELLITE_CONFIGURATOR_NAME, HAS_SATELLITE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_SATELLITE_CONFIGURATOR, ERRFLAG_SATELLITE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, SATELLITE_CONFIGURATOR_NAME, SATELLITE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_SATELLITE_CONFIGURATOR) MAKE_GRIB2_SATELLITE_CONFIGURATOR( THIS%SATELLITE_, THIS%TEMPLATE_NUMBER_, SATELLITE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( SATELLITE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_SATELLITE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make satellite configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate satellite configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_032_BUILD_SATELLITE_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_032_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_032_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_032_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_032_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_032_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_032_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_032_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_032_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_032_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_033_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_033_mod.F90 deleted file mode 100644 index 940783235..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_033_mod.F90 +++ /dev/null @@ -1,2071 +0,0 @@ -!> -!> @file grib2_section4_033_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_033_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_033_INIT -!> - @see GRIB2_SECTION4_033_ALLOCATE -!> - @see GRIB2_SECTION4_033_PRESET -!> - @see GRIB2_SECTION4_033_RUNTIME -!> - @see GRIB2_SECTION4_033_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_033_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_033_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_033_MOD' -MODULE GRIB2_SECTION4_033_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_033_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_033_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 32_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: SATELLITE_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_033_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_033_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_033_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_033_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_033_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_033_PRINT - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_033_BUILD_TIME_HANDLER - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_033_BUILD_MODEL_HANDLER - - !> - !> @brief Build the ensemble configurator object - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR => GRIB2_SECTION4_033_BUILD_ENSEMBLE_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_033_BUILD_PARAM_HANDLER - - !> - !> @brief Build the satellite configurator object - !> - !> This procedure allocates the proper satellite configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_SATELLITE_CONFIGURATOR => GRIB2_SECTION4_033_BUILD_SATELLITE_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_033_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_033_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_033_INIT -!> @see GRIB2_SECTION4_033_ALLOCATE -!> @see GRIB2_SECTION4_033_PRESET -!> @see GRIB2_SECTION4_033_RUNTIME -!> @see GRIB2_SECTION4_033_TO_BE_ENCODED -!> @see GRIB2_SECTION4_033_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_033_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_033_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_033_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_SATELLITE_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 32_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.32' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_SATELLITE_HANDLER) THIS%BUILD_SATELLITE_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize paramId handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_SATELLITE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize satellite handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_033_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_033_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_033_ALLOCATE -!> @see GRIB2_SECTION4_033_INIT -!> @see GRIB2_SECTION4_033_PRESET -!> @see GRIB2_SECTION4_033_RUNTIME -!> @see GRIB2_SECTION4_033_TO_BE_ENCODED -!> @see GRIB2_SECTION4_033_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_033_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_033_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_033_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_SATELLITE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%SATELLITE_), ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_SATELLITE) THIS%SATELLITE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_SATELLITE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate satellite' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_033_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_033_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_033_PRESET -!> @see GRIB2_SECTION4_033_ALLOCATE -!> @see GRIB2_SECTION4_033_INIT -!> @see GRIB2_SECTION4_033_RUNTIME -!> @see GRIB2_SECTION4_033_TO_BE_ENCODED -!> @see GRIB2_SECTION4_033_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_033_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_033_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_033_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_SATELLITE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%SATELLITE_), ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_SATELLITE) THIS%SATELLITE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_SATELLITE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset satellite' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_033_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_033_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_033_RUNTIME -!> @see GRIB2_SECTION4_033_ALLOCATE -!> @see GRIB2_SECTION4_033_INIT -!> @see GRIB2_SECTION4_033_PRESET -!> @see GRIB2_SECTION4_033_TO_BE_ENCODED -!> @see GRIB2_SECTION4_033_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_033_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_033_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_033_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_SATELLITE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%SATELLITE_), ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_SATELLITE) THIS%SATELLITE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_SATELLITE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset satellite' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_033_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_033_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_033_INIT -!> @see GRIB2_SECTION4_033_ALLOCATE -!> @see GRIB2_SECTION4_033_PRESET -!> @see GRIB2_SECTION4_033_RUNTIME -!> @see GRIB2_SECTION4_033_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_033_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_033_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_SATELLITE_FACTORY_MOD, ONLY: DESTROY_GRIB2_SATELLITE_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_033_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_SATELLITE=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%SATELLITE_), ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_SATELLITE) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%SATELLITE_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy time' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy model' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy ensemble' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy paramId' ) - CASE ( ERRFLAG_DESTROY_SATELLITE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy satellite' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_033_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_033_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_033_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_033_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_033_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_SATELLITE=8_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_SATELLITE) THIS%SATELLITE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE (ERRFLAG_CALL_PRINT_SATELLITE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print satellite' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_033_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 033. -!> -!> This function constructs the param handler for GRIB2 section 4, template 033, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_033_INIT -!> @see GRIB2_SECTION4_033_ALLOCATE -!> @see GRIB2_SECTION4_033_PRESET -!> @see GRIB2_SECTION4_033_RUNPARAM -!> @see GRIB2_SECTION4_033_TO_BE_ENCODED -!> @see GRIB2_SECTION4_033_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_033_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_033_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_033_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_033_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the satellite handler for GRIB2 section 4, template 033. -!> -!> This function constructs the satellite handler for GRIB2 section 4, template 033, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_033_INIT -!> @see GRIB2_SECTION4_033_ALLOCATE -!> @see GRIB2_SECTION4_033_PRESET -!> @see GRIB2_SECTION4_033_RUNSATELLITE -!> @see GRIB2_SECTION4_033_TO_BE_ENCODED -!> @see GRIB2_SECTION4_033_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_033_BUILD_SATELLITE_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_033_BUILD_SATELLITE_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_SATELLITE_FACTORY_MOD, ONLY: MAKE_GRIB2_SATELLITE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_033_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_SATELLITE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: SATELLITE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: SATELLITE_CONFIGURATOR_NAME='satellite-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SATELLITE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_SATELLITE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%SATELLITE_), ERRFLAG_SATELLITE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, SATELLITE_CONFIGURATOR_NAME, HAS_SATELLITE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_SATELLITE_CONFIGURATOR, ERRFLAG_SATELLITE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, SATELLITE_CONFIGURATOR_NAME, SATELLITE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_SATELLITE_CONFIGURATOR) MAKE_GRIB2_SATELLITE_CONFIGURATOR( THIS%SATELLITE_, THIS%TEMPLATE_NUMBER_, SATELLITE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( SATELLITE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_SATELLITE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'satellite configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_SATELLITE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make satellite configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate satellite configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_033_BUILD_SATELLITE_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_033_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_033_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_033_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_033_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_033_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_033_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_033_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_033_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_033_BUILD_ENSEMBLE_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_033_BUILD_ENSEMBLE_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_033_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_033_BUILD_ENSEMBLE_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_033_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_040_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_040_mod.F90 deleted file mode 100644 index 12bf37410..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_040_mod.F90 +++ /dev/null @@ -1,2085 +0,0 @@ -!> -!> @file grib2_section4_040_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_040_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_040_INIT -!> - @see GRIB2_SECTION4_040_ALLOCATE -!> - @see GRIB2_SECTION4_040_PRESET -!> - @see GRIB2_SECTION4_040_RUNTIME -!> - @see GRIB2_SECTION4_040_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_040_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_040_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_040_MOD' -MODULE GRIB2_SECTION4_040_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_040_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_040_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 40_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: CHEM_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_040_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_040_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_040_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_040_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_040_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_040_PRINT - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_040_BUILD_TIME_HANDLER - - - !> - !> @brief Build the model configurator object - !> - !> This procedure allocates the proper model configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_040_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_040_BUILD_PARAM_HANDLER - - !> - !> @brief Build the level configurator object - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR => GRIB2_SECTION4_040_BUILD_LEVEL_HANDLER - - !> - !> @brief Build the chem configurator object - !> - !> This procedure allocates the proper chem configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_CHEM_CONFIGURATOR => GRIB2_SECTION4_040_BUILD_CHEM_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_040_T - -CONTAINS - - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_040_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_040_INIT -!> @see GRIB2_SECTION4_040_ALLOCATE -!> @see GRIB2_SECTION4_040_PRESET -!> @see GRIB2_SECTION4_040_RUNTIME -!> @see GRIB2_SECTION4_040_TO_BE_ENCODED -!> @see GRIB2_SECTION4_040_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_040_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_040_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_040_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 40_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.40' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER) THIS%BUILD_CHEM_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize paramId handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize chem handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_040_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_040_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_040_ALLOCATE -!> @see GRIB2_SECTION4_040_INIT -!> @see GRIB2_SECTION4_040_PRESET -!> @see GRIB2_SECTION4_040_RUNTIME -!> @see GRIB2_SECTION4_040_TO_BE_ENCODED -!> @see GRIB2_SECTION4_040_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_040_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_040_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_040_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_CHEM) THIS%CHEM_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate chemistry' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_040_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_040_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_040_PRESET -!> @see GRIB2_SECTION4_040_ALLOCATE -!> @see GRIB2_SECTION4_040_INIT -!> @see GRIB2_SECTION4_040_RUNTIME -!> @see GRIB2_SECTION4_040_TO_BE_ENCODED -!> @see GRIB2_SECTION4_040_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_040_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_040_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_040_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_CHEM) THIS%CHEM_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset chemistry' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_040_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_040_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_040_RUNTIME -!> @see GRIB2_SECTION4_040_ALLOCATE -!> @see GRIB2_SECTION4_040_INIT -!> @see GRIB2_SECTION4_040_PRESET -!> @see GRIB2_SECTION4_040_TO_BE_ENCODED -!> @see GRIB2_SECTION4_040_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_040_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_040_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_040_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_CHEM) THIS%CHEM_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime chemistry' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_040_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_040_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_040_INIT -!> @see GRIB2_SECTION4_040_ALLOCATE -!> @see GRIB2_SECTION4_040_PRESET -!> @see GRIB2_SECTION4_040_RUNTIME -!> @see GRIB2_SECTION4_040_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_040_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_040_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: DESTROY_GRIB2_CHEM_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_040_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_CHEM) DESTROY_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chem configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free instant' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free level' ) - CASE ( ERRFLAG_DESTROY_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free chemistry' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_040_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_040_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_040_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_040_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_040_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_CHEM=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_CHEM) THIS%CHEM_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_CHEM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print chemistryl' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_040_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 040. -!> -!> This function constructs the param handler for GRIB2 section 4, template 040, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_040_INIT -!> @see GRIB2_SECTION4_040_ALLOCATE -!> @see GRIB2_SECTION4_040_PRESET -!> @see GRIB2_SECTION4_040_RUNPARAM -!> @see GRIB2_SECTION4_040_TO_BE_ENCODED -!> @see GRIB2_SECTION4_040_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_040_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_040_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_040_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_040_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 040. -!> -!> This function constructs the level handler for GRIB2 section 4, template 040, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_040_INIT -!> @see GRIB2_SECTION4_040_ALLOCATE -!> @see GRIB2_SECTION4_040_PRESET -!> @see GRIB2_SECTION4_040_RUNLEVEL -!> @see GRIB2_SECTION4_040_TO_BE_ENCODED -!> @see GRIB2_SECTION4_040_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_040_BUILD_LEVEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_040_BUILD_LEVEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_040_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_040_BUILD_LEVEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_040_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_040_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_040_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_040_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_040_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_040_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_040_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_040_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_040_BUILD_CHEM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_040_BUILD_CHEM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: MAKE_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_040_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_CHEM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: CHEM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: CHEM_CONFIGURATOR_NAME='chemistry-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, CHEM_CONFIGURATOR_NAME, HAS_CHEM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_CHEM_CONFIGURATOR, ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, CHEM_CONFIGURATOR_NAME, CHEM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR) MAKE_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, THIS%TEMPLATE_NUMBER_, CHEM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( CHEM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make chem configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate chem configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_040_BUILD_CHEM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_040_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_041_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_041_mod.F90 deleted file mode 100644 index bc3c3ccfd..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_041_mod.F90 +++ /dev/null @@ -1,2299 +0,0 @@ -!> -!> @file G2S4_041_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `G2S4_041_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_041_INIT -!> - @see G2S4_041_ALLOCATE -!> - @see G2S4_041_PRESET -!> - @see G2S4_041_RUNTIME -!> - @see G2S4_041_TO_BE_ENCODED -!> - @see G2S4_041_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_041_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_041_MOD' -MODULE GRIB2_SECTION4_041_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Name of the object (to be used in the register) -CHARACTER(LEN=*), PARAMETER :: G2S4_041_NAME = 'g2s4::041' - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `G2S4_041_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: G2S4_041_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 41_JPIB_K - - !> Name of the sub sections - CHARACTER(LEN=64) :: MODEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: TIME_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: LEVEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: PARAMID_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: ENSEMBLE_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: CHEM_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_041_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_041_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_041_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_041_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_041_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => G2S4_041_PRINT - - - - !> - !> @brief Build the time configurator object from yaml configuration - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR_CFG => G2S4_041_BUILD_TIME_HANDLER_CFG - - - !> - !> @brief Build the model configurator object from yaml configuration - !> - !> This procedure allocates the proper model configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR_CFG => G2S4_041_BUILD_MODEL_HANDLER_CFG - - !> - !> @brief Build the param configurator object from yaml configuration - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR_CFG => G2S4_041_BUILD_PARAM_HANDLER_CFG - - !> - !> @brief Build the level configurator object from yaml configuration - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR_CFG => G2S4_041_BUILD_LEVEL_HANDLER_CFG - - !> - !> @brief Build the ensemble configurator object from yaml configuration - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR_CFG => G2S4_041_BUILD_ENSEMBLE_HANDLER_CFG - - PROCEDURE, PRIVATE, PASS :: BUILD_CHEM_CONFIGURATOR_CFG => GRIB2_SECTION4_041_BUILD_CHEM_HANDLER - -END TYPE - - -!> -!> Public symbols (procedures) -PUBLIC :: G2S4_041_T - -CONTAINS - - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_041_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_041_INIT -!> @see G2S4_041_ALLOCATE -!> @see G2S4_041_PRESET -!> @see G2S4_041_RUNTIME -!> @see G2S4_041_TO_BE_ENCODED -!> @see G2S4_041_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_041_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_041_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 41_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.41' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER) THIS%BUILD_CHEM_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize chem handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_041_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_041_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_041_ALLOCATE -!> @see G2S4_041_INIT -!> @see G2S4_041_PRESET -!> @see G2S4_041_RUNTIME -!> @see G2S4_041_TO_BE_ENCODED -!> @see G2S4_041_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_041_ALLOCATE' -PP_THREAD_SAFE FUNCTION G2S4_041_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_CHEM) THIS%CHEM_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Allocate time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate chemistry' ) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_041_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_041_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_041_PRESET -!> @see G2S4_041_ALLOCATE -!> @see G2S4_041_INIT -!> @see G2S4_041_RUNTIME -!> @see G2S4_041_TO_BE_ENCODED -!> @see G2S4_041_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_041_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_041_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_CHEM) THIS%CHEM_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset chemistry' ) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_041_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_041_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_041_RUNTIME -!> @see G2S4_041_ALLOCATE -!> @see G2S4_041_INIT -!> @see G2S4_041_PRESET -!> @see G2S4_041_TO_BE_ENCODED -!> @see G2S4_041_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_041_RUNTIME' -PP_THREAD_SAFE FUNCTION G2S4_041_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_CHEM) THIS%CHEM_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime chemistry' ) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_041_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_041_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_041_INIT -!> @see G2S4_041_ALLOCATE -!> @see G2S4_041_PRESET -!> @see G2S4_041_RUNTIME -!> @see G2S4_041_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_041_FREE' -PP_THREAD_SAFE FUNCTION G2S4_041_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: DESTROY_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_CHEM) DESTROY_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free instant' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free level' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chem configurator not associated' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free ensemble' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_DESTROY_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free chemistry' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_041_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_041_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_041_PRINT' -PP_THREAD_SAFE FUNCTION G2S4_041_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_CHEM) THIS%CHEM_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_041_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 041. -!> -!> This function constructs the param handler for GRIB2 section 4, template 041, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_041_INIT -!> @see G2S4_041_ALLOCATE -!> @see G2S4_041_PRESET -!> @see G2S4_041_RUNPARAM -!> @see G2S4_041_TO_BE_ENCODED -!> @see G2S4_041_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_041_BUILD_PARAM_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_041_BUILD_PARAM_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Get the name of the param-configurator section - !! TODO - - !> Build the key to be used for the param configurator section - !! TODO - - !> Build the param configurator object - !! TODO - - !> Initialize the param configurator object - !! TODO - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_041_BUILD_PARAM_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 041. -!> -!> This function constructs the level handler for GRIB2 section 4, template 041, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_041_INIT -!> @see G2S4_041_ALLOCATE -!> @see G2S4_041_PRESET -!> @see G2S4_041_RUNLEVEL -!> @see G2S4_041_TO_BE_ENCODED -!> @see G2S4_041_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_041_BUILD_LEVEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_041_BUILD_LEVEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_041_BUILD_LEVEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_041_BUILD_ENSEMBLE_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_041_BUILD_ENSEMBLE_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_041_BUILD_ENSEMBLE_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_041_BUILD_CHEM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_041_BUILD_CHEM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: MAKE_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_CHEM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: CHEM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: CHEM_CONFIGURATOR_NAME='chemistry-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, CHEM_CONFIGURATOR_NAME, HAS_CHEM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_CHEM_CONFIGURATOR, ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, CHEM_CONFIGURATOR_NAME, CHEM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR) MAKE_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, THIS%TEMPLATE_NUMBER_, CHEM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( CHEM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make chem configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate chem configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_041_BUILD_CHEM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_041_BUILD_TIME_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_041_BUILD_TIME_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_041_BUILD_TIME_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_041_BUILD_MODEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_041_BUILD_MODEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_041_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_041_BUILD_MODEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_041_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_042_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_042_mod.F90 deleted file mode 100644 index 07b0bf448..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_042_mod.F90 +++ /dev/null @@ -1,2128 +0,0 @@ -!> -!> @file grib2_section4_042_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_042_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_042_INIT -!> - @see GRIB2_SECTION4_042_ALLOCATE -!> - @see GRIB2_SECTION4_042_PRESET -!> - @see GRIB2_SECTION4_042_RUNTIME -!> - @see GRIB2_SECTION4_042_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_042_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_042_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_042_MOD' -MODULE GRIB2_SECTION4_042_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_042_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_042_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 42_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: CHEM_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_042_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_042_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_042_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_042_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_042_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print information about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_042_PRINT - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_042_BUILD_TIME_HANDLER - - - !> - !> @brief Build the model configurator object - !> - !> This procedure allocates the proper model configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_042_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_042_BUILD_PARAM_HANDLER - - !> - !> @brief Build the level configurator object - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR => GRIB2_SECTION4_042_BUILD_LEVEL_HANDLER - - !> - !> @brief Build the chem configurator object - !> - !> This procedure allocates the proper chem configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_CHEM_CONFIGURATOR => GRIB2_SECTION4_042_BUILD_CHEM_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_042_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_042_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_042_INIT -!> @see GRIB2_SECTION4_042_ALLOCATE -!> @see GRIB2_SECTION4_042_PRESET -!> @see GRIB2_SECTION4_042_RUNTIME -!> @see GRIB2_SECTION4_042_TO_BE_ENCODED -!> @see GRIB2_SECTION4_042_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_042_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_042_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_042_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 42_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.42' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER) THIS%BUILD_CHEM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize chem handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_042_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_042_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_042_ALLOCATE -!> @see GRIB2_SECTION4_042_INIT -!> @see GRIB2_SECTION4_042_PRESET -!> @see GRIB2_SECTION4_042_RUNTIME -!> @see GRIB2_SECTION4_042_TO_BE_ENCODED -!> @see GRIB2_SECTION4_042_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_042_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_042_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_042_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_CHEM) THIS%CHEM_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate chemistry' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error while using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_042_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_042_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_042_PRESET -!> @see GRIB2_SECTION4_042_ALLOCATE -!> @see GRIB2_SECTION4_042_INIT -!> @see GRIB2_SECTION4_042_RUNTIME -!> @see GRIB2_SECTION4_042_TO_BE_ENCODED -!> @see GRIB2_SECTION4_042_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_042_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_042_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_042_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_CHEM=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_CHEM) THIS%CHEM_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset chemistry' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_042_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_042_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_042_RUNTIME -!> @see GRIB2_SECTION4_042_ALLOCATE -!> @see GRIB2_SECTION4_042_INIT -!> @see GRIB2_SECTION4_042_PRESET -!> @see GRIB2_SECTION4_042_TO_BE_ENCODED -!> @see GRIB2_SECTION4_042_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_042_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_042_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_042_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_CHEM=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_CHEM) THIS%CHEM_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime chemistry' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_042_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_042_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_042_INIT -!> @see GRIB2_SECTION4_042_ALLOCATE -!> @see GRIB2_SECTION4_042_PRESET -!> @see GRIB2_SECTION4_042_RUNTIME -!> @see GRIB2_SECTION4_042_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_042_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_042_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: DESTROY_GRIB2_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: DESTROY_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_042_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_TIME=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_CHEM=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_TIME) DESTROY_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_CHEM) DESTROY_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chem configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DESTROY_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy time configurator' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy model configurator' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy level configurator' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy paramId configurator' ) - CASE ( ERRFLAG_DESTROY_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free chemistry' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_042_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_042_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_042_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_042_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_042_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_CHEM=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_CHEM) THIS%CHEM_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_CHEM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print chemistryl' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_042_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Builds the time handler for GRIB2 section 4, template 042. -!> -!> This function constructs the time handler for GRIB2 section 4, template 042, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_042_INIT -!> @see GRIB2_SECTION4_042_ALLOCATE -!> @see GRIB2_SECTION4_042_PRESET -!> @see GRIB2_SECTION4_042_RUNTIME -!> @see GRIB2_SECTION4_042_TO_BE_ENCODED -!> @see GRIB2_SECTION4_042_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_042_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_042_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: MAKE_GRIB2_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_042_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='time-statistics-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_042_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_042_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_042_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_042_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_042_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 042. -!> -!> This function constructs the param handler for GRIB2 section 4, template 042, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_042_INIT -!> @see GRIB2_SECTION4_042_ALLOCATE -!> @see GRIB2_SECTION4_042_PRESET -!> @see GRIB2_SECTION4_042_RUNPARAM -!> @see GRIB2_SECTION4_042_TO_BE_ENCODED -!> @see GRIB2_SECTION4_042_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_042_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_042_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_042_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_042_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 042. -!> -!> This function constructs the level handler for GRIB2 section 4, template 042, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_042_INIT -!> @see GRIB2_SECTION4_042_ALLOCATE -!> @see GRIB2_SECTION4_042_PRESET -!> @see GRIB2_SECTION4_042_RUNLEVEL -!> @see GRIB2_SECTION4_042_TO_BE_ENCODED -!> @see GRIB2_SECTION4_042_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_042_BUILD_LEVEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_042_BUILD_LEVEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_042_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_042_BUILD_LEVEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_042_BUILD_CHEM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_042_BUILD_CHEM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: MAKE_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_042_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_CHEM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: CHEM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: CHEM_CONFIGURATOR_NAME='chemistry-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, CHEM_CONFIGURATOR_NAME, HAS_CHEM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_CHEM_CONFIGURATOR, ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, CHEM_CONFIGURATOR_NAME, CHEM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR) MAKE_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, THIS%TEMPLATE_NUMBER_, CHEM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( CHEM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make chem configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate chem configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_042_BUILD_CHEM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_042_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_043_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_043_mod.F90 deleted file mode 100644 index 657ad75e6..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_043_mod.F90 +++ /dev/null @@ -1,2330 +0,0 @@ -!> -!> @file grib2_section4_043_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_043_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_043_INIT -!> - @see GRIB2_SECTION4_043_ALLOCATE -!> - @see GRIB2_SECTION4_043_PRESET -!> - @see GRIB2_SECTION4_043_RUNTIME -!> - @see GRIB2_SECTION4_043_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_043_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_043_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_043_MOD' -MODULE GRIB2_SECTION4_043_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_043_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_043_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 43_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: CHEM_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_043_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_043_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_043_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_043_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_043_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_043_PRINT - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_043_BUILD_TIME_HANDLER - - - !> - !> @brief Build the model configurator object - !> - !> This procedure allocates the proper model configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_043_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_043_BUILD_PARAM_HANDLER - - !> - !> @brief Build the level configurator object - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR => GRIB2_SECTION4_043_BUILD_LEVEL_HANDLER - - !> - !> @brief Build the ensemble configurator object - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR => GRIB2_SECTION4_043_BUILD_ENSEMBLE_HANDLER - - !> - !> @brief Build the chem configurator object - !> - !> This procedure allocates the proper chem configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_CHEM_CONFIGURATOR => GRIB2_SECTION4_043_BUILD_CHEM_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_043_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_043_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_043_INIT -!> @see GRIB2_SECTION4_043_ALLOCATE -!> @see GRIB2_SECTION4_043_PRESET -!> @see GRIB2_SECTION4_043_RUNTIME -!> @see GRIB2_SECTION4_043_TO_BE_ENCODED -!> @see GRIB2_SECTION4_043_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 43_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.43' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER) THIS%BUILD_CHEM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize chem handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_043_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_043_ALLOCATE -!> @see GRIB2_SECTION4_043_INIT -!> @see GRIB2_SECTION4_043_PRESET -!> @see GRIB2_SECTION4_043_RUNTIME -!> @see GRIB2_SECTION4_043_TO_BE_ENCODED -!> @see GRIB2_SECTION4_043_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_CHEM=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - WRITE(*,*) 'ALLOCATE SECTION 4.11' - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_CHEM) THIS%CHEM_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate chemistry' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_043_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_043_PRESET -!> @see GRIB2_SECTION4_043_ALLOCATE -!> @see GRIB2_SECTION4_043_INIT -!> @see GRIB2_SECTION4_043_RUNTIME -!> @see GRIB2_SECTION4_043_TO_BE_ENCODED -!> @see GRIB2_SECTION4_043_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_CHEM) THIS%CHEM_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset chemistry' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_043_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_043_RUNTIME -!> @see GRIB2_SECTION4_043_ALLOCATE -!> @see GRIB2_SECTION4_043_INIT -!> @see GRIB2_SECTION4_043_PRESET -!> @see GRIB2_SECTION4_043_TO_BE_ENCODED -!> @see GRIB2_SECTION4_043_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_CHEM) THIS%CHEM_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime chemistry' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_043_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_043_INIT -!> @see GRIB2_SECTION4_043_ALLOCATE -!> @see GRIB2_SECTION4_043_PRESET -!> @see GRIB2_SECTION4_043_RUNTIME -!> @see GRIB2_SECTION4_043_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: DESTROY_GRIB2_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: DESTROY_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_TIME=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_CHEM=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_TIME) DESTROY_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_CHEM) DESTROY_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chem configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - - CASE ( ERRFLAG_DESTROY_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy time configurator' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy model configurator' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy level configurator' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy paramId configurator' ) - CASE ( ERRFLAG_DESTROY_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free chemistry' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy ensemble configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_043_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_CHEM=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_CHEM) THIS%CHEM_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE (ERRFLAG_CALL_PRINT_CHEM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print chemistryl' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Builds the time handler for GRIB2 section 4, template 043. -!> -!> This function constructs the time handler for GRIB2 section 4, template 043, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_043_INIT -!> @see GRIB2_SECTION4_043_ALLOCATE -!> @see GRIB2_SECTION4_043_PRESET -!> @see GRIB2_SECTION4_043_RUNTIME -!> @see GRIB2_SECTION4_043_TO_BE_ENCODED -!> @see GRIB2_SECTION4_043_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: MAKE_GRIB2_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='time-statistics-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 043. -!> -!> This function constructs the param handler for GRIB2 section 4, template 043, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_043_INIT -!> @see GRIB2_SECTION4_043_ALLOCATE -!> @see GRIB2_SECTION4_043_PRESET -!> @see GRIB2_SECTION4_043_RUNPARAM -!> @see GRIB2_SECTION4_043_TO_BE_ENCODED -!> @see GRIB2_SECTION4_043_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 043. -!> -!> This function constructs the level handler for GRIB2 section 4, template 043, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_043_INIT -!> @see GRIB2_SECTION4_043_ALLOCATE -!> @see GRIB2_SECTION4_043_PRESET -!> @see GRIB2_SECTION4_043_RUNLEVEL -!> @see GRIB2_SECTION4_043_TO_BE_ENCODED -!> @see GRIB2_SECTION4_043_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_BUILD_LEVEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_BUILD_LEVEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_BUILD_LEVEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_BUILD_ENSEMBLE_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_BUILD_ENSEMBLE_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_BUILD_ENSEMBLE_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_043_BUILD_CHEM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_043_BUILD_CHEM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: MAKE_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_043_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_CHEM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: CHEM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: CHEM_CONFIGURATOR_NAME='chemistry-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, CHEM_CONFIGURATOR_NAME, HAS_CHEM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_CHEM_CONFIGURATOR, ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, CHEM_CONFIGURATOR_NAME, CHEM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR) MAKE_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, THIS%TEMPLATE_NUMBER_, CHEM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( CHEM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make chem configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate chem configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_043_BUILD_CHEM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_043_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_045_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_045_mod.F90 deleted file mode 100644 index 3359e808c..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_045_mod.F90 +++ /dev/null @@ -1,2294 +0,0 @@ -!> -!> @file G2S4_045_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `G2S4_045_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_045_INIT -!> - @see G2S4_045_ALLOCATE -!> - @see G2S4_045_PRESET -!> - @see G2S4_045_RUNTIME -!> - @see G2S4_045_TO_BE_ENCODED -!> - @see G2S4_045_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_045_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_045_MOD' -MODULE GRIB2_SECTION4_045_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Name of the object (to be used in the register) -CHARACTER(LEN=*), PARAMETER :: G2S4_045_NAME = 'g2s4::045' - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `G2S4_045_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: G2S4_045_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 41_JPIB_K - - !> Name of the sub sections - CHARACTER(LEN=64) :: MODEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: TIME_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: LEVEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: PARAMID_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: ENSEMBLE_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: CHEM_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_045_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_045_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_045_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_045_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_045_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => G2S4_045_PRINT - - - - !> - !> @brief Build the time configurator object from yaml configuration - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR_CFG => G2S4_045_BUILD_TIME_HANDLER_CFG - - - !> - !> @brief Build the model configurator object from yaml configuration - !> - !> This procedure allocates the proper model configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR_CFG => G2S4_045_BUILD_MODEL_HANDLER_CFG - - !> - !> @brief Build the param configurator object from yaml configuration - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR_CFG => G2S4_045_BUILD_PARAM_HANDLER_CFG - - !> - !> @brief Build the level configurator object from yaml configuration - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR_CFG => G2S4_045_BUILD_LEVEL_HANDLER_CFG - - !> - !> @brief Build the ensemble configurator object from yaml configuration - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR_CFG => G2S4_045_BUILD_ENSEMBLE_HANDLER_CFG - - PROCEDURE, PRIVATE, PASS :: BUILD_CHEM_CONFIGURATOR_CFG => GRIB2_SECTION4_045_BUILD_CHEM_HANDLER - - -END TYPE - - -!> -!> Public symbols (procedures) -PUBLIC :: G2S4_045_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_045_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_045_INIT -!> @see G2S4_045_ALLOCATE -!> @see G2S4_045_PRESET -!> @see G2S4_045_RUNTIME -!> @see G2S4_045_TO_BE_ENCODED -!> @see G2S4_045_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_045_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_045_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 41_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.41' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER) THIS%BUILD_CHEM_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize chem handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_045_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_045_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_045_ALLOCATE -!> @see G2S4_045_INIT -!> @see G2S4_045_PRESET -!> @see G2S4_045_RUNTIME -!> @see G2S4_045_TO_BE_ENCODED -!> @see G2S4_045_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_045_ALLOCATE' -PP_THREAD_SAFE FUNCTION G2S4_045_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_CHEM) THIS%CHEM_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Allocate time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate chemistry' ) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_045_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_045_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_045_PRESET -!> @see G2S4_045_ALLOCATE -!> @see G2S4_045_INIT -!> @see G2S4_045_RUNTIME -!> @see G2S4_045_TO_BE_ENCODED -!> @see G2S4_045_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_045_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_045_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_CHEM) THIS%CHEM_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset chemistry' ) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_045_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_045_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_045_RUNTIME -!> @see G2S4_045_ALLOCATE -!> @see G2S4_045_INIT -!> @see G2S4_045_PRESET -!> @see G2S4_045_TO_BE_ENCODED -!> @see G2S4_045_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_045_RUNTIME' -PP_THREAD_SAFE FUNCTION G2S4_045_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_CHEM) THIS%CHEM_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime chemistry' ) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_045_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_045_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_045_INIT -!> @see G2S4_045_ALLOCATE -!> @see G2S4_045_PRESET -!> @see G2S4_045_RUNTIME -!> @see G2S4_045_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_045_FREE' -PP_THREAD_SAFE FUNCTION G2S4_045_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: DESTROY_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_CHEM) DESTROY_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free instant' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free level' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chem configurator not associated' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free ensemble' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_DESTROY_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free chemistry' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_045_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_045_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_045_PRINT' -PP_THREAD_SAFE FUNCTION G2S4_045_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_CHEM) THIS%CHEM_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_045_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 045. -!> -!> This function constructs the param handler for GRIB2 section 4, template 045, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_045_INIT -!> @see G2S4_045_ALLOCATE -!> @see G2S4_045_PRESET -!> @see G2S4_045_RUNPARAM -!> @see G2S4_045_TO_BE_ENCODED -!> @see G2S4_045_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_045_BUILD_PARAM_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_045_BUILD_PARAM_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Get the name of the param-configurator section - !! TODO - - !> Build the key to be used for the param configurator section - !! TODO - - !> Build the param configurator object - !! TODO - - !> Initialize the param configurator object - !! TODO - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_045_BUILD_PARAM_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 045. -!> -!> This function constructs the level handler for GRIB2 section 4, template 045, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_045_INIT -!> @see G2S4_045_ALLOCATE -!> @see G2S4_045_PRESET -!> @see G2S4_045_RUNLEVEL -!> @see G2S4_045_TO_BE_ENCODED -!> @see G2S4_045_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_045_BUILD_LEVEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_045_BUILD_LEVEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_045_BUILD_LEVEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_045_BUILD_ENSEMBLE_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_045_BUILD_ENSEMBLE_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_045_BUILD_ENSEMBLE_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_045_BUILD_CHEM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_045_BUILD_CHEM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: MAKE_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_CHEM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: CHEM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: CHEM_CONFIGURATOR_NAME='chemistry-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, CHEM_CONFIGURATOR_NAME, HAS_CHEM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_CHEM_CONFIGURATOR, ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, CHEM_CONFIGURATOR_NAME, CHEM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR) MAKE_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, THIS%TEMPLATE_NUMBER_, CHEM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( CHEM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make chem configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate chem configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_045_BUILD_CHEM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_045_BUILD_TIME_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_045_BUILD_TIME_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_045_BUILD_TIME_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_045_BUILD_MODEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_045_BUILD_MODEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_045_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_045_BUILD_MODEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_045_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_046_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_046_mod.F90 deleted file mode 100644 index 80cbe93d4..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_046_mod.F90 +++ /dev/null @@ -1,2127 +0,0 @@ -!> -!> @file grib2_section4_046_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_046_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_046_INIT -!> - @see GRIB2_SECTION4_046_ALLOCATE -!> - @see GRIB2_SECTION4_046_PRESET -!> - @see GRIB2_SECTION4_046_RUNTIME -!> - @see GRIB2_SECTION4_046_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_046_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_046_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_046_MOD' -MODULE GRIB2_SECTION4_046_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_046_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_046_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 42_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: CHEM_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_046_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_046_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_046_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_046_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_046_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print information about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_046_PRINT - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_046_BUILD_TIME_HANDLER - - - !> - !> @brief Build the model configurator object - !> - !> This procedure allocates the proper model configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_046_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_046_BUILD_PARAM_HANDLER - - !> - !> @brief Build the level configurator object - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR => GRIB2_SECTION4_046_BUILD_LEVEL_HANDLER - - !> - !> @brief Build the chem configurator object - !> - !> This procedure allocates the proper chem configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_CHEM_CONFIGURATOR => GRIB2_SECTION4_046_BUILD_CHEM_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_046_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_046_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_046_INIT -!> @see GRIB2_SECTION4_046_ALLOCATE -!> @see GRIB2_SECTION4_046_PRESET -!> @see GRIB2_SECTION4_046_RUNTIME -!> @see GRIB2_SECTION4_046_TO_BE_ENCODED -!> @see GRIB2_SECTION4_046_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_046_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_046_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_046_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 42_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.42' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER) THIS%BUILD_CHEM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize chem handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_046_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_046_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_046_ALLOCATE -!> @see GRIB2_SECTION4_046_INIT -!> @see GRIB2_SECTION4_046_PRESET -!> @see GRIB2_SECTION4_046_RUNTIME -!> @see GRIB2_SECTION4_046_TO_BE_ENCODED -!> @see GRIB2_SECTION4_046_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_046_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_046_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_046_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_CHEM) THIS%CHEM_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate chemistry' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error while using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_046_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_046_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_046_PRESET -!> @see GRIB2_SECTION4_046_ALLOCATE -!> @see GRIB2_SECTION4_046_INIT -!> @see GRIB2_SECTION4_046_RUNTIME -!> @see GRIB2_SECTION4_046_TO_BE_ENCODED -!> @see GRIB2_SECTION4_046_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_046_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_046_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_046_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_CHEM=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_CHEM) THIS%CHEM_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset chemistry' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_046_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_046_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_046_RUNTIME -!> @see GRIB2_SECTION4_046_ALLOCATE -!> @see GRIB2_SECTION4_046_INIT -!> @see GRIB2_SECTION4_046_PRESET -!> @see GRIB2_SECTION4_046_TO_BE_ENCODED -!> @see GRIB2_SECTION4_046_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_046_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_046_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_046_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_CHEM=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_CHEM) THIS%CHEM_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime chemistry' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_046_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_046_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_046_INIT -!> @see GRIB2_SECTION4_046_ALLOCATE -!> @see GRIB2_SECTION4_046_PRESET -!> @see GRIB2_SECTION4_046_RUNTIME -!> @see GRIB2_SECTION4_046_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_046_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_046_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: DESTROY_GRIB2_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: DESTROY_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_046_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_TIME=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_CHEM=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_TIME) DESTROY_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_CHEM) DESTROY_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chem configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DESTROY_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy time configurator' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy model configurator' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy level configurator' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy paramId configurator' ) - CASE ( ERRFLAG_DESTROY_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free chemistry' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_046_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_046_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_046_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_046_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_046_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_CHEM=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_CHEM) THIS%CHEM_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_CHEM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print chemistryl' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_046_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Builds the time handler for GRIB2 section 4, template 046. -!> -!> This function constructs the time handler for GRIB2 section 4, template 046, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_046_INIT -!> @see GRIB2_SECTION4_046_ALLOCATE -!> @see GRIB2_SECTION4_046_PRESET -!> @see GRIB2_SECTION4_046_RUNTIME -!> @see GRIB2_SECTION4_046_TO_BE_ENCODED -!> @see GRIB2_SECTION4_046_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_046_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_046_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: MAKE_GRIB2_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_046_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='time-statistics-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_046_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_046_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_046_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_046_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_046_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 046. -!> -!> This function constructs the param handler for GRIB2 section 4, template 046, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_046_INIT -!> @see GRIB2_SECTION4_046_ALLOCATE -!> @see GRIB2_SECTION4_046_PRESET -!> @see GRIB2_SECTION4_046_RUNPARAM -!> @see GRIB2_SECTION4_046_TO_BE_ENCODED -!> @see GRIB2_SECTION4_046_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_046_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_046_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_046_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_046_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 046. -!> -!> This function constructs the level handler for GRIB2 section 4, template 046, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_046_INIT -!> @see GRIB2_SECTION4_046_ALLOCATE -!> @see GRIB2_SECTION4_046_PRESET -!> @see GRIB2_SECTION4_046_RUNLEVEL -!> @see GRIB2_SECTION4_046_TO_BE_ENCODED -!> @see GRIB2_SECTION4_046_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_046_BUILD_LEVEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_046_BUILD_LEVEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_046_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_046_BUILD_LEVEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_046_BUILD_CHEM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_046_BUILD_CHEM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: MAKE_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_046_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_CHEM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: CHEM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: CHEM_CONFIGURATOR_NAME='chemistry-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, CHEM_CONFIGURATOR_NAME, HAS_CHEM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_CHEM_CONFIGURATOR, ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, CHEM_CONFIGURATOR_NAME, CHEM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR) MAKE_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, THIS%TEMPLATE_NUMBER_, CHEM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( CHEM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make chem configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate chem configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_046_BUILD_CHEM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_046_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_048_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_048_mod.F90 deleted file mode 100644 index 1e0d6a855..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_048_mod.F90 +++ /dev/null @@ -1,2085 +0,0 @@ -!> -!> @file grib2_section4_048_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_048_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_048_INIT -!> - @see GRIB2_SECTION4_048_ALLOCATE -!> - @see GRIB2_SECTION4_048_PRESET -!> - @see GRIB2_SECTION4_048_RUNTIME -!> - @see GRIB2_SECTION4_048_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_048_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_048_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_048_MOD' -MODULE GRIB2_SECTION4_048_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_048_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_048_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 40_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: CHEM_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_048_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_048_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_048_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_048_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_048_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_048_PRINT - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_048_BUILD_TIME_HANDLER - - - !> - !> @brief Build the model configurator object - !> - !> This procedure allocates the proper model configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_048_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_048_BUILD_PARAM_HANDLER - - !> - !> @brief Build the level configurator object - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR => GRIB2_SECTION4_048_BUILD_LEVEL_HANDLER - - !> - !> @brief Build the chem configurator object - !> - !> This procedure allocates the proper chem configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_CHEM_CONFIGURATOR => GRIB2_SECTION4_048_BUILD_CHEM_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_048_T - -CONTAINS - - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_048_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_048_INIT -!> @see GRIB2_SECTION4_048_ALLOCATE -!> @see GRIB2_SECTION4_048_PRESET -!> @see GRIB2_SECTION4_048_RUNTIME -!> @see GRIB2_SECTION4_048_TO_BE_ENCODED -!> @see GRIB2_SECTION4_048_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_048_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_048_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_048_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 40_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.40' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER) THIS%BUILD_CHEM_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize paramId handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize chem handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_048_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_048_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_048_ALLOCATE -!> @see GRIB2_SECTION4_048_INIT -!> @see GRIB2_SECTION4_048_PRESET -!> @see GRIB2_SECTION4_048_RUNTIME -!> @see GRIB2_SECTION4_048_TO_BE_ENCODED -!> @see GRIB2_SECTION4_048_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_048_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_048_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_048_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_CHEM) THIS%CHEM_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate chemistry' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_048_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_048_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_048_PRESET -!> @see GRIB2_SECTION4_048_ALLOCATE -!> @see GRIB2_SECTION4_048_INIT -!> @see GRIB2_SECTION4_048_RUNTIME -!> @see GRIB2_SECTION4_048_TO_BE_ENCODED -!> @see GRIB2_SECTION4_048_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_048_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_048_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_048_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_CHEM) THIS%CHEM_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset chemistry' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_048_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_048_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_048_RUNTIME -!> @see GRIB2_SECTION4_048_ALLOCATE -!> @see GRIB2_SECTION4_048_INIT -!> @see GRIB2_SECTION4_048_PRESET -!> @see GRIB2_SECTION4_048_TO_BE_ENCODED -!> @see GRIB2_SECTION4_048_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_048_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_048_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_048_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_CHEM) THIS%CHEM_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime chemistry' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_048_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_048_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_048_INIT -!> @see GRIB2_SECTION4_048_ALLOCATE -!> @see GRIB2_SECTION4_048_PRESET -!> @see GRIB2_SECTION4_048_RUNTIME -!> @see GRIB2_SECTION4_048_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_048_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_048_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: DESTROY_GRIB2_CHEM_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_048_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_CHEM) DESTROY_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chem configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free instant' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free level' ) - CASE ( ERRFLAG_DESTROY_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free chemistry' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_048_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_048_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_048_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_048_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_048_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_CHEM=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_CHEM) THIS%CHEM_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_CHEM) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print chemistryl' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_048_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 048. -!> -!> This function constructs the param handler for GRIB2 section 4, template 048, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_048_INIT -!> @see GRIB2_SECTION4_048_ALLOCATE -!> @see GRIB2_SECTION4_048_PRESET -!> @see GRIB2_SECTION4_048_RUNPARAM -!> @see GRIB2_SECTION4_048_TO_BE_ENCODED -!> @see GRIB2_SECTION4_048_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_048_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_048_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_048_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_048_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 048. -!> -!> This function constructs the level handler for GRIB2 section 4, template 048, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_048_INIT -!> @see GRIB2_SECTION4_048_ALLOCATE -!> @see GRIB2_SECTION4_048_PRESET -!> @see GRIB2_SECTION4_048_RUNLEVEL -!> @see GRIB2_SECTION4_048_TO_BE_ENCODED -!> @see GRIB2_SECTION4_048_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_048_BUILD_LEVEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_048_BUILD_LEVEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_048_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_048_BUILD_LEVEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_048_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_048_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_048_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_048_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_048_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_048_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_048_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_048_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_048_BUILD_CHEM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_048_BUILD_CHEM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: MAKE_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_048_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_CHEM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: CHEM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: CHEM_CONFIGURATOR_NAME='chemistry-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, CHEM_CONFIGURATOR_NAME, HAS_CHEM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_CHEM_CONFIGURATOR, ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, CHEM_CONFIGURATOR_NAME, CHEM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR) MAKE_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, THIS%TEMPLATE_NUMBER_, CHEM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( CHEM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make chem configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate chem configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_048_BUILD_CHEM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_048_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_049_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_049_mod.F90 deleted file mode 100644 index 84d7c1e5a..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_049_mod.F90 +++ /dev/null @@ -1,2292 +0,0 @@ -!> -!> @file G2S4_049_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `G2S4_049_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_049_INIT -!> - @see G2S4_049_ALLOCATE -!> - @see G2S4_049_PRESET -!> - @see G2S4_049_RUNTIME -!> - @see G2S4_049_TO_BE_ENCODED -!> - @see G2S4_049_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_049_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_049_MOD' -MODULE GRIB2_SECTION4_049_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Name of the object (to be used in the register) -CHARACTER(LEN=*), PARAMETER :: G2S4_049_NAME = 'g2s4::049' - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `G2S4_049_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: G2S4_049_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 41_JPIB_K - - !> Name of the sub sections - CHARACTER(LEN=64) :: MODEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: TIME_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: LEVEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: PARAMID_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: ENSEMBLE_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: CHEM_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_049_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_049_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_049_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_049_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_049_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => G2S4_049_PRINT - - - - !> - !> @brief Build the time configurator object from yaml configuration - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR_CFG => G2S4_049_BUILD_TIME_HANDLER_CFG - - - !> - !> @brief Build the model configurator object from yaml configuration - !> - !> This procedure allocates the proper model configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR_CFG => G2S4_049_BUILD_MODEL_HANDLER_CFG - - !> - !> @brief Build the param configurator object from yaml configuration - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR_CFG => G2S4_049_BUILD_PARAM_HANDLER_CFG - - !> - !> @brief Build the level configurator object from yaml configuration - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR_CFG => G2S4_049_BUILD_LEVEL_HANDLER_CFG - - !> - !> @brief Build the ensemble configurator object from yaml configuration - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR_CFG => G2S4_049_BUILD_ENSEMBLE_HANDLER_CFG - - PROCEDURE, PRIVATE, PASS :: BUILD_CHEM_CONFIGURATOR_CFG => GRIB2_SECTION4_049_BUILD_CHEM_HANDLER - - -END TYPE - - -!> -!> Public symbols (procedures) -PUBLIC :: G2S4_049_T - -CONTAINS - - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_049_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_049_INIT -!> @see G2S4_049_ALLOCATE -!> @see G2S4_049_PRESET -!> @see G2S4_049_RUNTIME -!> @see G2S4_049_TO_BE_ENCODED -!> @see G2S4_049_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_049_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_049_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 41_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.41' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER) THIS%BUILD_CHEM_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_CHEM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize chem handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_049_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_049_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_049_ALLOCATE -!> @see G2S4_049_INIT -!> @see G2S4_049_PRESET -!> @see G2S4_049_RUNTIME -!> @see G2S4_049_TO_BE_ENCODED -!> @see G2S4_049_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_049_ALLOCATE' -PP_THREAD_SAFE FUNCTION G2S4_049_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_CHEM) THIS%CHEM_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Allocate time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate chemistry' ) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_049_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_049_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_049_PRESET -!> @see G2S4_049_ALLOCATE -!> @see G2S4_049_INIT -!> @see G2S4_049_RUNTIME -!> @see G2S4_049_TO_BE_ENCODED -!> @see G2S4_049_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_049_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_049_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_CHEM) THIS%CHEM_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset chemistry' ) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_049_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_049_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_049_RUNTIME -!> @see G2S4_049_ALLOCATE -!> @see G2S4_049_INIT -!> @see G2S4_049_PRESET -!> @see G2S4_049_TO_BE_ENCODED -!> @see G2S4_049_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_049_RUNTIME' -PP_THREAD_SAFE FUNCTION G2S4_049_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_CHEM) THIS%CHEM_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime chemistry' ) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_049_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_049_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_049_INIT -!> @see G2S4_049_ALLOCATE -!> @see G2S4_049_PRESET -!> @see G2S4_049_RUNTIME -!> @see G2S4_049_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_049_FREE' -PP_THREAD_SAFE FUNCTION G2S4_049_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: DESTROY_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_CHEM=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_CHEM) DESTROY_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free instant' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free level' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chem configurator not associated' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free ensemble' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_DESTROY_CHEM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free chemistry' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_049_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_049_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_049_PRINT' -PP_THREAD_SAFE FUNCTION G2S4_049_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_CHEM=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_CHEM) THIS%CHEM_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_049_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 049. -!> -!> This function constructs the param handler for GRIB2 section 4, template 049, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_049_INIT -!> @see G2S4_049_ALLOCATE -!> @see G2S4_049_PRESET -!> @see G2S4_049_RUNPARAM -!> @see G2S4_049_TO_BE_ENCODED -!> @see G2S4_049_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_049_BUILD_PARAM_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_049_BUILD_PARAM_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Get the name of the param-configurator section - !! TODO - - !> Build the key to be used for the param configurator section - !! TODO - - !> Build the param configurator object - !! TODO - - !> Initialize the param configurator object - !! TODO - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_049_BUILD_PARAM_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 049. -!> -!> This function constructs the level handler for GRIB2 section 4, template 049, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_049_INIT -!> @see G2S4_049_ALLOCATE -!> @see G2S4_049_PRESET -!> @see G2S4_049_RUNLEVEL -!> @see G2S4_049_TO_BE_ENCODED -!> @see G2S4_049_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_049_BUILD_LEVEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_049_BUILD_LEVEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_049_BUILD_LEVEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_049_BUILD_ENSEMBLE_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_049_BUILD_ENSEMBLE_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_049_BUILD_ENSEMBLE_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_049_BUILD_CHEM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_049_BUILD_CHEM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_CHEM_FACTORY_MOD, ONLY: MAKE_GRIB2_CHEM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_CHEM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: CHEM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: CHEM_CONFIGURATOR_NAME='chemistry-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%CHEM_), ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, CHEM_CONFIGURATOR_NAME, HAS_CHEM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_CHEM_CONFIGURATOR, ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, CHEM_CONFIGURATOR_NAME, CHEM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR) MAKE_GRIB2_CHEM_CONFIGURATOR( THIS%CHEM_, THIS%TEMPLATE_NUMBER_, CHEM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( CHEM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_CHEM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'chemistry configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_CHEM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make chem configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate chem configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_049_BUILD_CHEM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_049_BUILD_TIME_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_049_BUILD_TIME_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_049_BUILD_TIME_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_049_BUILD_MODEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_049_BUILD_MODEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_049_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_049_BUILD_MODEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_049_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_060_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_060_mod.F90 deleted file mode 100644 index 9ba00880a..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_060_mod.F90 +++ /dev/null @@ -1,2130 +0,0 @@ -!> -!> @file G2S4_060_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `G2S4_060_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_060_INIT -!> - @see G2S4_060_ALLOCATE -!> - @see G2S4_060_PRESET -!> - @see G2S4_060_RUNTIME -!> - @see G2S4_060_TO_BE_ENCODED -!> - @see G2S4_060_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Philipp Geier -!> @date March, 2025 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_060_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_060_MOD' -MODULE GRIB2_SECTION4_060_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Name of the object (to be used in the register) -CHARACTER(LEN=*), PARAMETER :: G2S4_060_NAME = 'g2s4::060' - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `G2S4_060_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: G2S4_060_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 60_JPIB_K - - !> Name of the sub sections - CHARACTER(LEN=64) :: MODEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: TIME_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: LEVEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: PARAMID_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: ENSEMBLE_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_060_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_060_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_060_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_060_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_060_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => G2S4_060_PRINT - - - - !> - !> @brief Build the model configurator object from yaml configuration - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR_CFG => G2S4_060_BUILD_MODEL_HANDLER_CFG - - - !> - !> @brief Build the time configurator object from yaml configuration - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR_CFG => G2S4_060_BUILD_TIME_HANDLER_CFG - - !> - !> @brief Build the param configurator object from yaml configuration - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR_CFG => G2S4_060_BUILD_PARAM_HANDLER_CFG - - !> - !> @brief Build the level configurator object from yaml configuration - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR_CFG => G2S4_060_BUILD_LEVEL_HANDLER_CFG - - !> - !> @brief Build the ensemble configurator object from yaml configuration - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR_CFG => G2S4_060_BUILD_ENSEMBLE_HANDLER_CFG - -END TYPE - - -!> -!> Public symbols (procedures) -PUBLIC :: G2S4_060_T - -CONTAINS - - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_060_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_060_INIT -!> @see G2S4_060_ALLOCATE -!> @see G2S4_060_PRESET -!> @see G2S4_060_RUNTIME -!> @see G2S4_060_TO_BE_ENCODED -!> @see G2S4_060_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_060_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_060_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_060_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 60_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.1' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_060_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_060_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_060_ALLOCATE -!> @see G2S4_060_INIT -!> @see G2S4_060_PRESET -!> @see G2S4_060_RUNTIME -!> @see G2S4_060_TO_BE_ENCODED -!> @see G2S4_060_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_060_ALLOCATE' -PP_THREAD_SAFE FUNCTION G2S4_060_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_060_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG,GEO, PAR, OPT, METADATA, HOOKS ) - If(ASSOCIATED(THIS%LEVEL_)) THEN - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - ENDIF - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Allocate time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_060_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_060_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_060_PRESET -!> @see G2S4_060_ALLOCATE -!> @see G2S4_060_INIT -!> @see G2S4_060_RUNTIME -!> @see G2S4_060_TO_BE_ENCODED -!> @see G2S4_060_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_060_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_060_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_060_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - If(ASSOCIATED(THIS%LEVEL_)) THEN - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - ENDIF - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_060_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_060_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_060_RUNTIME -!> @see G2S4_060_ALLOCATE -!> @see G2S4_060_INIT -!> @see G2S4_060_PRESET -!> @see G2S4_060_TO_BE_ENCODED -!> @see G2S4_060_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_060_RUNTIME' -PP_THREAD_SAFE FUNCTION G2S4_060_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: DATETIME_UTILS_MOD, ONLY: YYYYMMDD_HHMMSS_TO_DATETIME - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_060_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K), DIMENSION(6) :: DATE_TIME - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_DATETIME=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - If(ASSOCIATED(THIS%LEVEL_)) THEN - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - ENDIF - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Set mars.date and mars.time in model version - in section1 mars.date is set instead - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_DATETIME) YYYYMMDD_HHMMSS_TO_DATETIME( MSG%DATE, MSG%TIME, DATE_TIME, HOOKS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'YearOfModelVersion', DATE_TIME(1) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'MonthOfModelVersion', DATE_TIME(2) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'DayOfModelVersion', DATE_TIME(3) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'HourOfModelVersion', DATE_TIME(4) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'MinuteOfModelVersion', DATE_TIME(5) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'SecondOfModelVersion', DATE_TIME(6) ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_UNABLE_TO_CONVERT_DATETIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert date time' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_060_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_060_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_060_INIT -!> @see G2S4_060_ALLOCATE -!> @see G2S4_060_PRESET -!> @see G2S4_060_RUNTIME -!> @see G2S4_060_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_060_FREE' -PP_THREAD_SAFE FUNCTION G2S4_060_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_060_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - If(ASSOCIATED(THIS%LEVEL_)) THEN - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - ENDIF - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free instant' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free level' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free ensemble' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_060_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_060_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_060_PRINT' -PP_THREAD_SAFE FUNCTION G2S4_060_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_060_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - If(ASSOCIATED(THIS%LEVEL_)) THEN - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - ENDIF - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_060_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 060. -!> -!> This function constructs the param handler for GRIB2 section 4, template 060, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_060_INIT -!> @see G2S4_060_ALLOCATE -!> @see G2S4_060_PRESET -!> @see G2S4_060_RUNPARAM -!> @see G2S4_060_TO_BE_ENCODED -!> @see G2S4_060_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_060_BUILD_PARAM_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_060_BUILD_PARAM_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_060_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Get the name of the param-configurator section - !! TODO - - !> Build the key to be used for the param configurator section - !! TODO - - !> Build the param configurator object - !! TODO - - !> Initialize the param configurator object - !! TODO - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_060_BUILD_PARAM_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 060. -!> -!> This function constructs the level handler for GRIB2 section 4, template 060, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_060_INIT -!> @see G2S4_060_ALLOCATE -!> @see G2S4_060_PRESET -!> @see G2S4_060_RUNLEVEL -!> @see G2S4_060_TO_BE_ENCODED -!> @see G2S4_060_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_060_BUILD_LEVEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_060_BUILD_LEVEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_060_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - - IF (HAS_LEVEL_CONFIGURATOR) THEN - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_060_BUILD_LEVEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_060_BUILD_ENSEMBLE_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_060_BUILD_ENSEMBLE_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_060_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_060_BUILD_ENSEMBLE_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_060_BUILD_TIME_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_060_BUILD_TIME_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_060_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_060_BUILD_TIME_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_060_BUILD_MODEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_060_BUILD_MODEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_060_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_060_BUILD_MODEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_060_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_061_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_061_mod.F90 deleted file mode 100644 index 1b65056f3..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_061_mod.F90 +++ /dev/null @@ -1,2142 +0,0 @@ -!> -!> @file grib2_section4_061_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_061_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_061_INIT -!> - @see GRIB2_SECTION4_061_ALLOCATE -!> - @see GRIB2_SECTION4_061_PRESET -!> - @see GRIB2_SECTION4_061_RUNTIME -!> - @see GRIB2_SECTION4_061_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_061_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_061_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_061_MOD' -MODULE GRIB2_SECTION4_061_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_061_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_061_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 61_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_061_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_061_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_061_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_061_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_061_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_061_PRINT - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_061_BUILD_TIME_HANDLER - - - !> - !> @brief Build the model configurator object - !> - !> This procedure allocates the proper time configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_061_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_061_BUILD_PARAM_HANDLER - - !> - !> @brief Build the level configurator object - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR => GRIB2_SECTION4_061_BUILD_LEVEL_HANDLER - - !> - !> @brief Build the ensemble configurator object - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR => GRIB2_SECTION4_061_BUILD_ENSEMBLE_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_061_T - -CONTAINS - - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_061_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_061_INIT -!> @see GRIB2_SECTION4_061_ALLOCATE -!> @see GRIB2_SECTION4_061_PRESET -!> @see GRIB2_SECTION4_061_RUNTIME -!> @see GRIB2_SECTION4_061_TO_BE_ENCODED -!> @see GRIB2_SECTION4_061_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_061_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_061_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_061_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 61_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.11' - - ! Time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to model time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_061_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_061_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_061_ALLOCATE -!> @see GRIB2_SECTION4_061_INIT -!> @see GRIB2_SECTION4_061_PRESET -!> @see GRIB2_SECTION4_061_RUNTIME -!> @see GRIB2_SECTION4_061_TO_BE_ENCODED -!> @see GRIB2_SECTION4_061_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_061_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_061_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_061_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - WRITE(*,*) 'ALLOCATE SECTION 4.11' - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - IF ( ASSOCIATED(THIS%LEVEL_) ) THEN - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - ENDIF - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_061_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_061_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_061_PRESET -!> @see GRIB2_SECTION4_061_ALLOCATE -!> @see GRIB2_SECTION4_061_INIT -!> @see GRIB2_SECTION4_061_RUNTIME -!> @see GRIB2_SECTION4_061_TO_BE_ENCODED -!> @see GRIB2_SECTION4_061_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_061_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_061_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_061_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - WRITE(*,*) 'PRESET SECTION 4.11' - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - IF ( ASSOCIATED(THIS%LEVEL_) ) THEN - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - ENDIF - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_061_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_061_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_061_RUNTIME -!> @see GRIB2_SECTION4_061_ALLOCATE -!> @see GRIB2_SECTION4_061_INIT -!> @see GRIB2_SECTION4_061_PRESET -!> @see GRIB2_SECTION4_061_TO_BE_ENCODED -!> @see GRIB2_SECTION4_061_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_061_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_061_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: DATETIME_UTILS_MOD, ONLY: YYYYMMDD_HHMMSS_TO_DATETIME - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_061_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - INTEGER(KIND=JPIB_K), DIMENSION(6) :: DATE_TIME - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_CONVERT_DATETIME=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - IF ( ASSOCIATED(THIS%LEVEL_) ) THEN - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - ENDIF - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Set mars.date and mars.time in model version - in section1 mars.date is set instead - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_DATETIME) YYYYMMDD_HHMMSS_TO_DATETIME( MSG%DATE, MSG%TIME, DATE_TIME, HOOKS ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'YearOfModelVersion', DATE_TIME(1) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'MonthOfModelVersion', DATE_TIME(2) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'DayOfModelVersion', DATE_TIME(3) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'HourOfModelVersion', DATE_TIME(4) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'MinuteOfModelVersion', DATE_TIME(5) ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'SecondOfModelVersion', DATE_TIME(6) ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_UNABLE_TO_CONVERT_DATETIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to convert date time' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_061_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_061_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_061_INIT -!> @see GRIB2_SECTION4_061_ALLOCATE -!> @see GRIB2_SECTION4_061_PRESET -!> @see GRIB2_SECTION4_061_RUNTIME -!> @see GRIB2_SECTION4_061_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_061_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_061_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: DESTROY_GRIB2_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_061_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_TIME) DESTROY_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - IF ( ASSOCIATED(THIS%LEVEL_) ) THEN - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - ENDIF - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy model configurator' ) - CASE ( ERRFLAG_DESTROY_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy time configurator' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy level configurator' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy paramId configurator' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to destroy ensemble configurator' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_061_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_061_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_061_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_061_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_061_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - IF ( ASSOCIATED(THIS%LEVEL_) ) THEN - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - ENDIF - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_061_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Builds the time handler for GRIB2 section 4, template 061. -!> -!> This function constructs the time handler for GRIB2 section 4, template 061, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_061_INIT -!> @see GRIB2_SECTION4_061_ALLOCATE -!> @see GRIB2_SECTION4_061_PRESET -!> @see GRIB2_SECTION4_061_RUNTIME -!> @see GRIB2_SECTION4_061_TO_BE_ENCODED -!> @see GRIB2_SECTION4_061_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_061_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_061_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: MAKE_GRIB2_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_061_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='time-statistics-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_061_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_061_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_061_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_061_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_061_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 061. -!> -!> This function constructs the param handler for GRIB2 section 4, template 061, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_061_INIT -!> @see GRIB2_SECTION4_061_ALLOCATE -!> @see GRIB2_SECTION4_061_PRESET -!> @see GRIB2_SECTION4_061_RUNPARAM -!> @see GRIB2_SECTION4_061_TO_BE_ENCODED -!> @see GRIB2_SECTION4_061_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_061_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_061_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_061_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_061_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 061. -!> -!> This function constructs the level handler for GRIB2 section 4, template 061, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_061_INIT -!> @see GRIB2_SECTION4_061_ALLOCATE -!> @see GRIB2_SECTION4_061_PRESET -!> @see GRIB2_SECTION4_061_RUNLEVEL -!> @see GRIB2_SECTION4_061_TO_BE_ENCODED -!> @see GRIB2_SECTION4_061_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_061_BUILD_LEVEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_061_BUILD_LEVEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_061_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - IF (HAS_LEVEL_CONFIGURATOR) THEN - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_061_BUILD_LEVEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_061_BUILD_ENSEMBLE_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_061_BUILD_ENSEMBLE_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_061_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_061_BUILD_ENSEMBLE_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_061_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_099_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_099_mod.F90 deleted file mode 100644 index 118a74d17..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_099_mod.F90 +++ /dev/null @@ -1,1839 +0,0 @@ -!> -!> @file grib2_section4_099_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_099_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_099_INIT -!> - @see GRIB2_SECTION4_099_ALLOCATE -!> - @see GRIB2_SECTION4_099_PRESET -!> - @see GRIB2_SECTION4_099_RUNTIME -!> - @see GRIB2_SECTION4_099_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_099_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_099_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_099_MOD' -MODULE GRIB2_SECTION4_099_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_099_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_099_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 99_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: DIRFREQ_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_099_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_099_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_099_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_099_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_099_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_099_PRINT - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_099_BUILD_TIME_HANDLER - - - !> - !> @brief Build the model configurator object - !> - !> This procedure allocates the proper model configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_099_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_099_BUILD_PARAM_HANDLER - - !> - !> @brief Build the directions/frequencies configurator object - !> - !> This procedure allocates the proper directions/frequencies configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_DIRFREQ_CONFIGURATOR => GRIB2_SECTION4_099_BUILD_FREQDIR_HANDLER -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_099_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_099_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_099_INIT -!> @see GRIB2_SECTION4_099_ALLOCATE -!> @see GRIB2_SECTION4_099_PRESET -!> @see GRIB2_SECTION4_099_RUNTIME -!> @see GRIB2_SECTION4_099_TO_BE_ENCODED -!> @see GRIB2_SECTION4_099_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_099_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_099_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_099_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_DIRFREQ_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 99_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.99' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_DIRFREQ_HANDLER) THIS%BUILD_DIRFREQ_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize paramId handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_DIRFREQ_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize dirfreq handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_099_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_099_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_099_ALLOCATE -!> @see GRIB2_SECTION4_099_INIT -!> @see GRIB2_SECTION4_099_PRESET -!> @see GRIB2_SECTION4_099_RUNTIME -!> @see GRIB2_SECTION4_099_TO_BE_ENCODED -!> @see GRIB2_SECTION4_099_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_099_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_099_ALLOCATE( THIS, & -& MSG, GEo, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_099_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_DIRFREQ=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DIRFREQ_), ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_DIRFREQ) THIS%DIRFREQ_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_DIRFREQ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate dirfreq' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'dirfreq configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_099_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_099_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_099_PRESET -!> @see GRIB2_SECTION4_099_ALLOCATE -!> @see GRIB2_SECTION4_099_INIT -!> @see GRIB2_SECTION4_099_RUNTIME -!> @see GRIB2_SECTION4_099_TO_BE_ENCODED -!> @see GRIB2_SECTION4_099_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_099_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_099_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_099_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_DIRFREQ=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DIRFREQ_), ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_DIRFREQ) THIS%DIRFREQ_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_DIRFREQ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset direction/frequencies' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'dirfreq configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_099_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_099_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_099_RUNTIME -!> @see GRIB2_SECTION4_099_ALLOCATE -!> @see GRIB2_SECTION4_099_INIT -!> @see GRIB2_SECTION4_099_PRESET -!> @see GRIB2_SECTION4_099_TO_BE_ENCODED -!> @see GRIB2_SECTION4_099_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_099_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_099_RUNTIME( THIS, & -& MSG, GEO, PAR,OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_099_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_DIRFREQ=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DIRFREQ_), ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_DIRFREQ) THIS%DIRFREQ_%RUNTIME( MSG, GEO, PAR,OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_DIRFREQ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime direction/frequencies' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'dirfreq configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_099_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_099_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_099_INIT -!> @see GRIB2_SECTION4_099_ALLOCATE -!> @see GRIB2_SECTION4_099_PRESET -!> @see GRIB2_SECTION4_099_RUNTIME -!> @see GRIB2_SECTION4_099_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_099_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_099_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_DIRFREQ_FACTORY_MOD, ONLY: DESTROY_GRIB2_DIRFREQ_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_099_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_DIRFREQ=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DIRFREQ_), ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_DIRFREQ) DESTROY_GRIB2_DIRFREQ_CONFIGURATOR( THIS%DIRFREQ_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free instant' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE ( ERRFLAG_DESTROY_DIRFREQ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free direction/frequencies' ) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'dirfreq configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_099_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_099_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_099_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_099_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_099_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_099_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 099. -!> -!> This function constructs the param handler for GRIB2 section 4, template 099, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_099_INIT -!> @see GRIB2_SECTION4_099_ALLOCATE -!> @see GRIB2_SECTION4_099_PRESET -!> @see GRIB2_SECTION4_099_RUNPARAM -!> @see GRIB2_SECTION4_099_TO_BE_ENCODED -!> @see GRIB2_SECTION4_099_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_099_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_099_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_099_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_099_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_099_BUILD_FREQDIR_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_099_BUILD_FREQDIR_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_DIRFREQ_FACTORY_MOD, ONLY: MAKE_GRIB2_DIRFREQ_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_099_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_DIRFREQ_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: DIRFREQ_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: DIRFREQ_CONFIGURATOR_NAME='directions-frequencies-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_DIRFREQ_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%DIRFREQ_), ERRFLAG_DIRFREQ_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, DIRFREQ_CONFIGURATOR_NAME, HAS_DIRFREQ_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_DIRFREQ_CONFIGURATOR, ERRFLAG_DIRFREQ_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, DIRFREQ_CONFIGURATOR_NAME, DIRFREQ_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_DIRFREQ_CONFIGURATOR) MAKE_GRIB2_DIRFREQ_CONFIGURATOR( THIS%DIRFREQ_, THIS%TEMPLATE_NUMBER_, DIRFREQ_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( DIRFREQ_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_DIRFREQ_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_099_BUILD_FREQDIR_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_099_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_099_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_099_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_099_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_099_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_099_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_099_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_099_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_099_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_100_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_100_mod.F90 deleted file mode 100644 index 38089100a..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_100_mod.F90 +++ /dev/null @@ -1,2044 +0,0 @@ -!> -!> @file grib2_section4_100_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_100_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_100_INIT -!> - @see GRIB2_SECTION4_100_ALLOCATE -!> - @see GRIB2_SECTION4_100_PRESET -!> - @see GRIB2_SECTION4_100_RUNTIME -!> - @see GRIB2_SECTION4_100_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_100_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_100_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_100_MOD' -MODULE GRIB2_SECTION4_100_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_100_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_100_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 100_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: DIRFREQ_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_100_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_100_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_100_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_100_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_100_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_100_PRINT - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_100_BUILD_TIME_HANDLER - - !> - !> @brief Build the model configurator object - !> - !> This procedure allocates the proper model configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_100_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_100_BUILD_PARAM_HANDLER - - - !> - !> @brief Build the directions/frequencies configurator object - !> - !> This procedure allocates the proper directions/frequencies configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_DIRFREQ_CONFIGURATOR => GRIB2_SECTION4_100_BUILD_FREQDIR_HANDLER - - !> - !> @brief Build the ensemble configurator object - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR => GRIB2_SECTION4_100_BUILD_ENSEMBLE_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_100_T - -CONTAINS - - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_100_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_100_INIT -!> @see GRIB2_SECTION4_100_ALLOCATE -!> @see GRIB2_SECTION4_100_PRESET -!> @see GRIB2_SECTION4_100_RUNTIME -!> @see GRIB2_SECTION4_100_TO_BE_ENCODED -!> @see GRIB2_SECTION4_100_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_100_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_100_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_100_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_DIRFREQ_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 100_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.100' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_DIRFREQ_HANDLER) THIS%BUILD_DIRFREQ_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize paramId handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_DIRFREQ_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize dirfreq handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_100_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_100_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_100_ALLOCATE -!> @see GRIB2_SECTION4_100_INIT -!> @see GRIB2_SECTION4_100_PRESET -!> @see GRIB2_SECTION4_100_RUNTIME -!> @see GRIB2_SECTION4_100_TO_BE_ENCODED -!> @see GRIB2_SECTION4_100_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_100_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_100_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_100_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_DIRFREQ=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DIRFREQ_), ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_DIRFREQ) THIS%DIRFREQ_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_DIRFREQ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate dirfreq' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'dirfreq configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_100_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_100_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_100_PRESET -!> @see GRIB2_SECTION4_100_ALLOCATE -!> @see GRIB2_SECTION4_100_INIT -!> @see GRIB2_SECTION4_100_RUNTIME -!> @see GRIB2_SECTION4_100_TO_BE_ENCODED -!> @see GRIB2_SECTION4_100_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_100_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_100_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_100_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_DIRFREQ=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DIRFREQ_), ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_DIRFREQ) THIS%DIRFREQ_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_DIRFREQ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset direction/frequencies' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'dirfreq configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_100_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_100_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_100_RUNTIME -!> @see GRIB2_SECTION4_100_ALLOCATE -!> @see GRIB2_SECTION4_100_INIT -!> @see GRIB2_SECTION4_100_PRESET -!> @see GRIB2_SECTION4_100_TO_BE_ENCODED -!> @see GRIB2_SECTION4_100_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_100_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_100_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_100_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_DIRFREQ=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DIRFREQ_), ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_DIRFREQ) THIS%DIRFREQ_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_DIRFREQ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime direction/frequencies' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'dirfreq configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_100_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_100_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_100_INIT -!> @see GRIB2_SECTION4_100_ALLOCATE -!> @see GRIB2_SECTION4_100_PRESET -!> @see GRIB2_SECTION4_100_RUNTIME -!> @see GRIB2_SECTION4_100_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_100_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_100_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_DIRFREQ_FACTORY_MOD, ONLY: DESTROY_GRIB2_DIRFREQ_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_100_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_DIRFREQ=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DIRFREQ_), ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_DIRFREQ) DESTROY_GRIB2_DIRFREQ_CONFIGURATOR( THIS%DIRFREQ_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free instant' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_DIRFREQ ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free direction/frequencies' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free ensemble' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to model ensemble' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_100_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_100_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_100_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_100_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_100_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_DIRFREQ=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=10_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DIRFREQ_), ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_DIRFREQ) THIS%DIRFREQ_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'directions/frequencies configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE (ERRFLAG_CALL_PRINT_DIRFREQ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print directions/frequencies' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_100_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 100. -!> -!> This function constructs the param handler for GRIB2 section 4, template 100, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_100_INIT -!> @see GRIB2_SECTION4_100_ALLOCATE -!> @see GRIB2_SECTION4_100_PRESET -!> @see GRIB2_SECTION4_100_RUNPARAM -!> @see GRIB2_SECTION4_100_TO_BE_ENCODED -!> @see GRIB2_SECTION4_100_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_100_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_100_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_100_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_100_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_100_BUILD_FREQDIR_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_100_BUILD_FREQDIR_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_DIRFREQ_FACTORY_MOD, ONLY: MAKE_GRIB2_DIRFREQ_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_100_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_DIRFREQ_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: DIRFREQ_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: DIRFREQ_CONFIGURATOR_NAME='directions-frequencies-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DIRFREQ_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_DIRFREQ_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%DIRFREQ_), ERRFLAG_DIRFREQ_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, DIRFREQ_CONFIGURATOR_NAME, HAS_DIRFREQ_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_DIRFREQ_CONFIGURATOR, ERRFLAG_DIRFREQ_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, DIRFREQ_CONFIGURATOR_NAME, DIRFREQ_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_DIRFREQ_CONFIGURATOR) MAKE_GRIB2_DIRFREQ_CONFIGURATOR( THIS%DIRFREQ_, THIS%TEMPLATE_NUMBER_, DIRFREQ_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( DIRFREQ_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_DIRFREQ_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_DIRFREQ_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_100_BUILD_FREQDIR_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_100_BUILD_ENSEMBLE_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_100_BUILD_ENSEMBLE_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_100_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_100_BUILD_ENSEMBLE_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_100_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_100_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_100_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_100_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_100_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_100_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_100_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_100_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_100_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_103_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_103_mod.F90 deleted file mode 100644 index 9596c4432..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_103_mod.F90 +++ /dev/null @@ -1,2106 +0,0 @@ -!> -!> @file grib2_section4_103_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_103_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_103_INIT -!> - @see GRIB2_SECTION4_103_ALLOCATE -!> - @see GRIB2_SECTION4_103_PRESET -!> - @see GRIB2_SECTION4_103_RUNTIME -!> - @see GRIB2_SECTION4_103_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_103_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_103_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_103_MOD' -MODULE GRIB2_SECTION4_103_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_103_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_103_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 103_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PERIOD_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_103_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_103_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_103_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_103_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_103_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print information about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_103_PRINT - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_103_BUILD_TIME_HANDLER - - - !> - !> @brief Build the model configurator object - !> - !> This procedure allocates the proper model configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_103_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_103_BUILD_PARAM_HANDLER - - !> - !> @brief Build the directions/frequencies configurator object - !> - !> This procedure allocates the proper directions/frequencies configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PERIOD_CONFIGURATOR => GRIB2_SECTION4_103_BUILD_PERIOD_HANDLER - - - !> - !> @brief Build the level configurator object - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR => GRIB2_SECTION4_103_BUILD_LEVEL_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_103_T - -CONTAINS - - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_103_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_103_INIT -!> @see GRIB2_SECTION4_103_ALLOCATE -!> @see GRIB2_SECTION4_103_PRESET -!> @see GRIB2_SECTION4_103_RUNTIME -!> @see GRIB2_SECTION4_103_TO_BE_ENCODED -!> @see GRIB2_SECTION4_103_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_103_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_103_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_103_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PERIOD_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 103_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.103' - - ! Time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PERIOD_HANDLER) THIS%BUILD_PERIOD_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PERIOD_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize period handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_103_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_103_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_103_ALLOCATE -!> @see GRIB2_SECTION4_103_INIT -!> @see GRIB2_SECTION4_103_PRESET -!> @see GRIB2_SECTION4_103_RUNTIME -!> @see GRIB2_SECTION4_103_TO_BE_ENCODED -!> @see GRIB2_SECTION4_103_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_103_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_103_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_103_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PERIOD=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PERIOD_), ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PERIOD) THIS%PERIOD_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error while using metadata' ) - CASE ( ERRFLAG_ALLOCATE_PERIOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate period' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_103_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_103_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_103_PRESET -!> @see GRIB2_SECTION4_103_ALLOCATE -!> @see GRIB2_SECTION4_103_INIT -!> @see GRIB2_SECTION4_103_RUNTIME -!> @see GRIB2_SECTION4_103_TO_BE_ENCODED -!> @see GRIB2_SECTION4_103_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_103_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_103_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_103_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PERIOD=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PERIOD_), ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PERIOD) THIS%PERIOD_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_PERIOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset direction/frequencies' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_103_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_103_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_103_RUNTIME -!> @see GRIB2_SECTION4_103_ALLOCATE -!> @see GRIB2_SECTION4_103_INIT -!> @see GRIB2_SECTION4_103_PRESET -!> @see GRIB2_SECTION4_103_TO_BE_ENCODED -!> @see GRIB2_SECTION4_103_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_103_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_103_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_103_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PERIOD=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PERIOD_), ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PERIOD) THIS%PERIOD_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_PERIOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime direction/frequencies' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_103_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_103_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_103_INIT -!> @see GRIB2_SECTION4_103_ALLOCATE -!> @see GRIB2_SECTION4_103_PRESET -!> @see GRIB2_SECTION4_103_RUNTIME -!> @see GRIB2_SECTION4_103_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_103_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_103_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: DESTROY_GRIB2_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_PERIOD_FACTORY_MOD, ONLY: DESTROY_GRIB2_PERIOD_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_103_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_TIME=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PERIOD=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=5_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_TIME) DESTROY_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PERIOD) DESTROY_GRIB2_PERIOD_CONFIGURATOR( THIS%PERIOD_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free time' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free level' ) - CASE ( ERRFLAG_DESTROY_PERIOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free direction/frequencies' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_103_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_103_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_103_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_103_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_103_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PERIOD=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=11_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PERIOD_), ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PERIOD) THIS%PERIOD_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_PERIOD) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print period' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_103_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Builds the time handler for GRIB2 section 4, template 103. -!> -!> This function constructs the time handler for GRIB2 section 4, template 103, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_103_INIT -!> @see GRIB2_SECTION4_103_ALLOCATE -!> @see GRIB2_SECTION4_103_PRESET -!> @see GRIB2_SECTION4_103_RUNTIME -!> @see GRIB2_SECTION4_103_TO_BE_ENCODED -!> @see GRIB2_SECTION4_103_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_103_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_103_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_103_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_103_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_103_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_103_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_103_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_103_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 103. -!> -!> This function constructs the param handler for GRIB2 section 4, template 103, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_103_INIT -!> @see GRIB2_SECTION4_103_ALLOCATE -!> @see GRIB2_SECTION4_103_PRESET -!> @see GRIB2_SECTION4_103_RUNPARAM -!> @see GRIB2_SECTION4_103_TO_BE_ENCODED -!> @see GRIB2_SECTION4_103_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_103_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_103_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_103_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_103_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_103_BUILD_PERIOD_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_103_BUILD_PERIOD_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PERIOD_FACTORY_MOD, ONLY: MAKE_GRIB2_PERIOD_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_103_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PERIOD_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PERIOD_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PERIOD_CONFIGURATOR_NAME='period-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PERIOD_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PERIOD_), ERRFLAG_PERIOD_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PERIOD_CONFIGURATOR_NAME, HAS_PERIOD_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PERIOD_CONFIGURATOR, ERRFLAG_PERIOD_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PERIOD_CONFIGURATOR_NAME, PERIOD_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PERIOD_CONFIGURATOR) MAKE_GRIB2_PERIOD_CONFIGURATOR( THIS%PERIOD_, THIS%TEMPLATE_NUMBER_, PERIOD_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PERIOD_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PERIOD_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PERIOD_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PERIOD_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make period configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate period configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_103_BUILD_PERIOD_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 000. -!> -!> This function constructs the level handler for GRIB2 section 4, template 000, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_000_INIT -!> @see GRIB2_SECTION4_000_ALLOCATE -!> @see GRIB2_SECTION4_000_PRESET -!> @see GRIB2_SECTION4_000_RUNLEVEL -!> @see GRIB2_SECTION4_000_TO_BE_ENCODED -!> @see GRIB2_SECTION4_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_103_BUILD_LEVEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_103_BUILD_LEVEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_103_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_103_BUILD_LEVEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_103_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_104_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_104_mod.F90 deleted file mode 100644 index 9b24f5611..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_104_mod.F90 +++ /dev/null @@ -1,2294 +0,0 @@ -!> -!> @file grib2_section4_104_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `GRIB2_SECTION4_104_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION4_104_INIT -!> - @see GRIB2_SECTION4_104_ALLOCATE -!> - @see GRIB2_SECTION4_104_PRESET -!> - @see GRIB2_SECTION4_104_RUNTIME -!> - @see GRIB2_SECTION4_104_TO_BE_ENCODED -!> - @see GRIB2_SECTION4_104_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_104_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_104_MOD' -MODULE GRIB2_SECTION4_104_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `GRIB2_SECTION4_104_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION4_104_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 104_JPIB_K - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PERIOD_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION4_104_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION4_104_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION4_104_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION4_104_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION4_104_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print information about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_SECTION4_104_PRINT - - - !> - !> @brief Build the time configurator object - !> - !> This procedure allocates the proper time configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR => GRIB2_SECTION4_104_BUILD_TIME_HANDLER - - !> - !> @brief Build the model configurator object - !> - !> This procedure allocates the proper model configurator for this section - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR => GRIB2_SECTION4_104_BUILD_MODEL_HANDLER - - !> - !> @brief Build the param configurator object - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR => GRIB2_SECTION4_104_BUILD_PARAM_HANDLER - - !> - !> @brief Build the directions/frequencies configurator object - !> - !> This procedure allocates the proper directions/frequencies configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PERIOD_CONFIGURATOR => GRIB2_SECTION4_104_BUILD_PERIOD_HANDLER - - !> - !> @brief Build the ensemble configurator object - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR => GRIB2_SECTION4_104_BUILD_ENSEMBLE_HANDLER - !> - !> @brief Build the level configurator object - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR => GRIB2_SECTION4_104_BUILD_LEVEL_HANDLER - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION4_104_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_104_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_104_INIT -!> @see GRIB2_SECTION4_104_ALLOCATE -!> @see GRIB2_SECTION4_104_PRESET -!> @see GRIB2_SECTION4_104_RUNTIME -!> @see GRIB2_SECTION4_104_TO_BE_ENCODED -!> @see GRIB2_SECTION4_104_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PERIOD_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 104_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.104' - - ! Time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PERIOD_HANDLER) THIS%BUILD_PERIOD_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PERIOD_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize period handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_104_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_104_ALLOCATE -!> @see GRIB2_SECTION4_104_INIT -!> @see GRIB2_SECTION4_104_PRESET -!> @see GRIB2_SECTION4_104_RUNTIME -!> @see GRIB2_SECTION4_104_TO_BE_ENCODED -!> @see GRIB2_SECTION4_104_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PERIOD=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=14_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PERIOD_), ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PERIOD) THIS%PERIOD_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error while using metadata' ) - CASE ( ERRFLAG_ALLOCATE_PERIOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate period' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_104_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_104_PRESET -!> @see GRIB2_SECTION4_104_ALLOCATE -!> @see GRIB2_SECTION4_104_INIT -!> @see GRIB2_SECTION4_104_RUNTIME -!> @see GRIB2_SECTION4_104_TO_BE_ENCODED -!> @see GRIB2_SECTION4_104_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PERIOD=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=14_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PERIOD_), ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PERIOD) THIS%PERIOD_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_PERIOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset direction/frequencies' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION4_104_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_104_RUNTIME -!> @see GRIB2_SECTION4_104_ALLOCATE -!> @see GRIB2_SECTION4_104_INIT -!> @see GRIB2_SECTION4_104_PRESET -!> @see GRIB2_SECTION4_104_TO_BE_ENCODED -!> @see GRIB2_SECTION4_104_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PERIOD=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=14_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PERIOD_), ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PERIOD) THIS%PERIOD_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_PERIOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime direction/frequencies' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_104_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_104_INIT -!> @see GRIB2_SECTION4_104_ALLOCATE -!> @see GRIB2_SECTION4_104_PRESET -!> @see GRIB2_SECTION4_104_RUNTIME -!> @see GRIB2_SECTION4_104_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_STATISTICS_FACTORY_MOD, ONLY: DESTROY_GRIB2_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_PERIOD_FACTORY_MOD, ONLY: DESTROY_GRIB2_PERIOD_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_TIME=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PERIOD=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_TIME) DESTROY_GRIB2_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PERIOD) DESTROY_GRIB2_PERIOD_CONFIGURATOR( THIS%PERIOD_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free time' ) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free level' ) - CASE ( ERRFLAG_DESTROY_PERIOD ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free direction/frequencies' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free ensemble' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION4_104_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=0_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PERIOD=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PERIOD_), ERRFLAG_PERIOD_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PERIOD) THIS%PERIOD_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Builds the time handler for GRIB2 section 4, template 104. -!> -!> This function constructs the time handler for GRIB2 section 4, template 104, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_104_INIT -!> @see GRIB2_SECTION4_104_ALLOCATE -!> @see GRIB2_SECTION4_104_PRESET -!> @see GRIB2_SECTION4_104_RUNTIME -!> @see GRIB2_SECTION4_104_TO_BE_ENCODED -!> @see GRIB2_SECTION4_104_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_BUILD_TIME_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_BUILD_TIME_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_BUILD_TIME_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_BUILD_MODEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_BUILD_MODEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate model configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_BUILD_MODEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 104. -!> -!> This function constructs the param handler for GRIB2 section 4, template 104, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_104_INIT -!> @see GRIB2_SECTION4_104_ALLOCATE -!> @see GRIB2_SECTION4_104_PRESET -!> @see GRIB2_SECTION4_104_RUNPARAM -!> @see GRIB2_SECTION4_104_TO_BE_ENCODED -!> @see GRIB2_SECTION4_104_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_BUILD_PARAM_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_BUILD_PARAM_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_BUILD_PARAM_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_BUILD_PERIOD_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_BUILD_PERIOD_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PERIOD_FACTORY_MOD, ONLY: MAKE_GRIB2_PERIOD_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PERIOD_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PERIOD_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PERIOD_CONFIGURATOR_NAME='period-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PERIOD_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PERIOD_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PERIOD_), ERRFLAG_PERIOD_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PERIOD_CONFIGURATOR_NAME, HAS_PERIOD_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PERIOD_CONFIGURATOR, ERRFLAG_PERIOD_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PERIOD_CONFIGURATOR_NAME, PERIOD_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PERIOD_CONFIGURATOR) MAKE_GRIB2_PERIOD_CONFIGURATOR( THIS%PERIOD_, THIS%TEMPLATE_NUMBER_, PERIOD_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PERIOD_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PERIOD_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PERIOD_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'period configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PERIOD_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make period configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate period configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_BUILD_PERIOD_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_BUILD_ENSEMBLE_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_BUILD_ENSEMBLE_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_BUILD_ENSEMBLE_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 000. -!> -!> This function constructs the level handler for GRIB2 section 4, template 000, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_000_INIT -!> @see GRIB2_SECTION4_000_ALLOCATE -!> @see GRIB2_SECTION4_000_PRESET -!> @see GRIB2_SECTION4_000_RUNLEVEL -!> @see GRIB2_SECTION4_000_TO_BE_ENCODED -!> @see GRIB2_SECTION4_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION4_104_BUILD_LEVEL_HANDLER' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION4_104_BUILD_LEVEL_HANDLER( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION4_104_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION4_104_BUILD_LEVEL_HANDLER -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_104_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_143_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_143_mod.F90 deleted file mode 100644 index 662319568..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_143_mod.F90 +++ /dev/null @@ -1,2301 +0,0 @@ -!> -!> @file G2S4_143_mod.F90 -!> -!> @brief Module for managing GRIB2 Section 4 operations. -!> -!> The `G2S4_143_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Section 4 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Section 4 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see G2S4_143_INIT -!> - @see G2S4_143_ALLOCATE -!> - @see G2S4_143_PRESET -!> - @see G2S4_143_RUNTIME -!> - @see G2S4_143_TO_BE_ENCODED -!> - @see G2S4_143_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_143_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_143_MOD' -MODULE GRIB2_SECTION4_143_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> Name of the object (to be used in the register) -CHARACTER(LEN=*), PARAMETER :: G2S4_143_NAME = 'g2s4::143' - -!> -!> @brief Type definition for GRIB2 Section 4 handler. -!> -!> The `G2S4_143_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Section 4 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: G2S4_143_T - - !> Default symbols visibility - PRIVATE - - !> Integer section number - INTEGER(KIND=JPIB_K) :: TEMPLATE_NUMBER_ = 1_JPIB_K - - !> Name of the sub sections - CHARACTER(LEN=64) :: MODEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: TIME_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: LEVEL_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: PARAMID_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: ENSEMBLE_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - CHARACTER(LEN=64) :: RANDOM_PATTERNS_SUBSECTION_NAME_ = REPEAT( ' ', 64 ) - - !> Type definition for GRIB2 Section 4 handler. - CLASS(GRIB_SECTION_BASE_A), POINTER :: MODEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: TIME_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: LEVEL_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: PARAMID_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: ENSEMBLE_ => NULL() - CLASS(GRIB_SECTION_BASE_A), POINTER :: RANDOM_PATTERNS_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Section 4 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => G2S4_143_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Section 4 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => G2S4_143_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Section 4 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => G2S4_143_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Section 4 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => G2S4_143_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Section 4 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => G2S4_143_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => G2S4_143_PRINT - - - - !> - !> @brief Build the model configurator object from yaml configuration - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_MODEL_CONFIGURATOR_CFG => G2S4_143_BUILD_MODEL_HANDLER_CFG - - - !> - !> @brief Build the time configurator object from yaml configuration - !> - !> This procedure allocates the proper time configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_TIME_CONFIGURATOR_CFG => G2S4_143_BUILD_TIME_HANDLER_CFG - - !> - !> @brief Build the param configurator object from yaml configuration - !> - !> This procedure allocates the proper param configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_PARAM_CONFIGURATOR_CFG => G2S4_143_BUILD_PARAM_HANDLER_CFG - - !> - !> @brief Build the level configurator object from yaml configuration - !> - !> This procedure allocates the proper level configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_LEVEL_CONFIGURATOR_CFG => G2S4_143_BUILD_LEVEL_HANDLER_CFG - - !> - !> @brief Build the ensemble configurator object from yaml configuration - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_ENSEMBLE_CONFIGURATOR_CFG => G2S4_143_BUILD_ENSEMBLE_HANDLER_CFG - - !> - !> @brief Build the random patterns configurator object from yaml configuration - !> - !> This procedure allocates the proper ensemble configurator - !> - PROCEDURE, PRIVATE, PASS :: BUILD_RANDOM_PATTERNS_CONFIGURATOR_CFG => G2S4_143_BUILD_RANDOM_PATTERNS_HANDLER_CFG - - -END TYPE - - -!> -!> Public symbols (procedures) -PUBLIC :: G2S4_143_T - -CONTAINS - - -!> -!> @brief Initializes GRIB2 Section 4 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_143_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_143_INIT -!> @see G2S4_143_ALLOCATE -!> @see G2S4_143_PRESET -!> @see G2S4_143_RUNTIME -!> @see G2S4_143_TO_BE_ENCODED -!> @see G2S4_143_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_INIT_CFG' -PP_THREAD_SAFE FUNCTION G2S4_143_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_INIT_RANDOM_PATTERNS_HANDLER=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TEMPLATE_NUMBER_ = 1_JPIB_K - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'PRODUCT_DEFINITION_SECTION' - THIS%KIND_ = '4.1' - - ! Initialize tha time handler - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER) THIS%BUILD_MODEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER) THIS%BUILD_TIME_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER) THIS%BUILD_PARAM_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER) THIS%BUILD_LEVEL_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER) THIS%BUILD_ENSEMBLE_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_UNABLE_TO_INIT_RANDOM_PATTERNS_HANDLER) THIS%BUILD_RANDOM_PATTERNS_CONFIGURATOR_CFG( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_INIT_MODEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize model handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_TIME_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize time handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_PARAM_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to init param handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_LEVEL_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize level handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_ENSEMBLE_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize ensemble handler' ) - CASE ( ERRFLAG_UNABLE_TO_INIT_RANDOM_PATTERNS_HANDLER ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to initialize random patterns handler' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Section 4 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_143_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_143_ALLOCATE -!> @see G2S4_143_INIT -!> @see G2S4_143_PRESET -!> @see G2S4_143_RUNTIME -!> @see G2S4_143_TO_BE_ENCODED -!> @see G2S4_143_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_ALLOCATE' -PP_THREAD_SAFE FUNCTION G2S4_143_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATE_RANDOM_PATTERNS=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%RANDOM_PATTERNS_), ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Enable section 4 - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'productDefinitionTemplateNumber', THIS%TEMPLATE_NUMBER_ ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_ALLOCATE_MODEL) THIS%MODEL_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_TIME) THIS%TIME_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_LEVEL) THIS%LEVEL_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_PARAMID) THIS%PARAMID_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_ENSEMBLE) THIS%ENSEMBLE_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_ALLOCATE_RANDOM_PATTERNS) THIS%RANDOM_PATTERNS_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Allocate time, level and paramId subcomponents of the section - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ALLOCATE_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate model' ) - CASE ( ERRFLAG_ALLOCATE_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate time' ) - CASE ( ERRFLAG_ALLOCATE_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate level' ) - CASE ( ERRFLAG_ALLOCATE_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate paramId' ) - CASE ( ERRFLAG_ALLOCATE_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate ensemble' ) - CASE ( ERRFLAG_ALLOCATE_RANDOM_PATTERNS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to allocate random patterns' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'random patterns configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Section 4 using the provided parameters and message data. -!> -!> This function presets a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_143_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_143_PRESET -!> @see G2S4_143_ALLOCATE -!> @see G2S4_143_INIT -!> @see G2S4_143_RUNTIME -!> @see G2S4_143_TO_BE_ENCODED -!> @see G2S4_143_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_PRESET' -PP_THREAD_SAFE FUNCTION G2S4_143_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PRESET_RANDOM_PATTERNS=13_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED=14_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%RANDOM_PATTERNS_), ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_PRESET_MODEL) THIS%MODEL_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_TIME) THIS%TIME_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_LEVEL) THIS%LEVEL_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_PARAMID) THIS%PARAMID_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_ENSEMBLE) THIS%ENSEMBLE_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_PRESET_RANDOM_PATTERNS) THIS%RANDOM_PATTERNS_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PRESET_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset model' ) - CASE ( ERRFLAG_PRESET_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset time' ) - CASE ( ERRFLAG_PRESET_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset level' ) - CASE ( ERRFLAG_PRESET_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset paramId' ) - CASE ( ERRFLAG_PRESET_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset ensemble' ) - CASE ( ERRFLAG_PRESET_RANDOM_PATTERNS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to preset random patterns' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'random patterns configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Section 4 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Section 4 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> @param [in] THIS An object of type `G2S4_143_T` representing the GRIB section for runtime execution. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] TIME_HIST The time history object of type `TIME_HISTORY_T` providing historical time data. -!> @param [in] CURR_TIME The current time object of type `CURR_TIME_T` for the runtime phase. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during runtime. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for runtime operations. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_143_RUNTIME -!> @see G2S4_143_ALLOCATE -!> @see G2S4_143_INIT -!> @see G2S4_143_PRESET -!> @see G2S4_143_TO_BE_ENCODED -!> @see G2S4_143_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_RUNTIME' -PP_THREAD_SAFE FUNCTION G2S4_143_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_TIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_PARAMID=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_ENSEMBLE=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RUNTIME_RANDOM_PATTERNS=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED=13_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%RANDOM_PATTERNS_), ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Allocate time, level and paramId subcomponents of the section - PP_TRYCALL(ERRFLAG_RUNTIME_MODEL) THIS%MODEL_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_TIME) THIS%TIME_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_LEVEL) THIS%LEVEL_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_PARAMID) THIS%PARAMID_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_ENSEMBLE) THIS%ENSEMBLE_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_RUNTIME_RANDOM_PATTERNS) THIS%RANDOM_PATTERNS_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RUNTIME_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime model' ) - CASE ( ERRFLAG_RUNTIME_TIME ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime time' ) - CASE ( ERRFLAG_RUNTIME_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime level' ) - CASE ( ERRFLAG_RUNTIME_PARAMID ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime paramId' ) - CASE ( ERRFLAG_RUNTIME_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime ensemble' ) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_RUNTIME_RANDOM_PATTERNS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to runtime random patterns' ) - CASE ( ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'random patterns configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Section 4 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Section 4 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_143_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_143_INIT -!> @see G2S4_143_ALLOCATE -!> @see G2S4_143_PRESET -!> @see G2S4_143_RUNTIME -!> @see G2S4_143_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_FREE' -PP_THREAD_SAFE FUNCTION G2S4_143_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_MODEL_CONFIGURATOR - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: DESTROY_GRIB2_LEVEL_CONFIGURATOR - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: DESTROY_GRIB2_PARAM_CONFIGURATOR - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR - USE :: GRIB2_SECTION4_RANDOM_PATTERNS_FACTORY_MOD, ONLY: DESTROY_GRIB2_RANDOM_PATTERNS_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_INSTANT=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_MODEL=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_PARAM=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_LEVEL=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_ENSEMBLE=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DESTROY_RANDOM_PATTERNS=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%RANDOM_PATTERNS_), ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Free all the memory - PP_TRYCALL(ERRFLAG_DESTROY_MODEL) DESTROY_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_INSTANT) DESTROY_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_LEVEL) DESTROY_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_PARAM) DESTROY_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_ENSEMBLE) DESTROY_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_DESTROY_RANDOM_PATTERNS) DESTROY_GRIB2_RANDOM_PATTERNS_CONFIGURATOR( THIS%RANDOM_PATTERNS_, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_DESTROY_MODEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free model' ) - CASE ( ERRFLAG_DESTROY_INSTANT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free instant' ) - CASE ( ERRFLAG_DESTROY_PARAM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free paramId' ) - CASE ( ERRFLAG_DESTROY_LEVEL ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free level' ) - CASE ( ERRFLAG_DESTROY_ENSEMBLE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free ensemble' ) - CASE ( ERRFLAG_DESTROY_RANDOM_PATTERNS ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to free random patterns' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator not associated' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE ( ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'random patterns configurator not associated' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `G2S4_143_T` representing the GRIB section to be freed. -!> @param [in] UNIT The unit number to print the information. -!> @param [in] OFFSET The offset to print the information. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_PRINT' -PP_THREAD_SAFE FUNCTION G2S4_143_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_MODEL=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_TIME=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_LEVEL=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_ENSEMBLE=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_PARAMID=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_PRINT_RANDOM_PATTERNS=12_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%RANDOM_PATTERNS_), ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', & -& TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), & -& 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), & -& '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - ! Print of nested sections - PP_TRYCALL(ERRFLAG_CALL_PRINT_MODEL) THIS%MODEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_TIME) THIS%TIME_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_LEVEL) THIS%LEVEL_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_ENSEMBLE) THIS%ENSEMBLE_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_PARAMID) THIS%PARAMID_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_PRINT_RANDOM_PATTERNS) THIS%RANDOM_PATTERNS_%PRINT( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator not associated' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator not associated' ) - CASE ( ERRFLAG_PARAMID_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'paramId configurator not associated' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE (ERRFLAG_CALL_PRINT_MODEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print model' ) - CASE (ERRFLAG_CALL_PRINT_TIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print time' ) - CASE (ERRFLAG_CALL_PRINT_LEVEL) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print level' ) - CASE (ERRFLAG_CALL_PRINT_ENSEMBLE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print ensemble' ) - CASE (ERRFLAG_CALL_PRINT_PARAMID) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print paramId' ) - CASE ( ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_NOT_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'random patterns configurator not associated' ) - CASE (ERRFLAG_CALL_PRINT_RANDOM_PATTERNS) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error calling print random patterns' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Builds the param handler for GRIB2 section 4, template 143. -!> -!> This function constructs the param handler for GRIB2 section 4, template 143, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @param [in] OPT GRIB encoder options used in the building process. -!> @param [in] CFG YAML configuration object containing relevant settings. -!> @param [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_143_INIT -!> @see G2S4_143_ALLOCATE -!> @see G2S4_143_PRESET -!> @see G2S4_143_RUNPARAM -!> @see G2S4_143_TO_BE_ENCODED -!> @see G2S4_143_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_BUILD_PARAM_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_143_BUILD_PARAM_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_PARAM_FACTORY_MOD, ONLY: MAKE_GRIB2_PARAM_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_PARAM_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: PARAM_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PARAM_CONFIGURATOR_NAME='param-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PARAMID_), ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, PARAM_CONFIGURATOR_NAME, HAS_PARAM_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_PARAM_CONFIGURATOR, ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, PARAM_CONFIGURATOR_NAME, PARAM_CONFIGURATOR_CFG, HOOKS ) - - !> Get the name of the param-configurator section - !! TODO - - !> Build the key to be used for the param configurator section - !! TODO - - !> Build the param configurator object - !! TODO - - !> Initialize the param configurator object - !! TODO - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR) MAKE_GRIB2_PARAM_CONFIGURATOR( THIS%PARAMID_, THIS%TEMPLATE_NUMBER_, PARAM_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( PARAM_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_PARAM_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'param configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_PARAM_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make param configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate param configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_BUILD_PARAM_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Builds the level handler for GRIB2 section 4, template 143. -!> -!> This function constructs the level handler for GRIB2 section 4, template 143, -!> based on the provided configuration (`CFG`), options (`OPT`). -!> It modifies the `THIS` structure accordingly and returns an error code if the operation fails. -!> The function is thread-safe and uses preprocessor directives for debugging, logging, and tracing. -!> -!> @section interface -!> -!> @level [inout] THIS GRIB2 section 4 structure that is modified by this procedure. -!> @level [in] OPT GRIB encoder options used in the building process. -!> @level [in] CFG YAML configuration object containing relevant settings. -!> @level [inout] HOOKS Hooks object used for additional operations and callbacks during execution. -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see G2S4_143_INIT -!> @see G2S4_143_ALLOCATE -!> @see G2S4_143_PRESET -!> @see G2S4_143_RUNLEVEL -!> @see G2S4_143_TO_BE_ENCODED -!> @see G2S4_143_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_BUILD_LEVEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_143_BUILD_LEVEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_LEVEL_FACTORY_MOD, ONLY: MAKE_GRIB2_LEVEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_LEVEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: LEVEL_CONFIGURATOR_CFG - - !> Local leveleters - CHARACTER(LEN=*), PARAMETER :: LEVEL_CONFIGURATOR_NAME='level-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LEVEL_), ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, LEVEL_CONFIGURATOR_NAME, HAS_LEVEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_LEVEL_CONFIGURATOR, ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, LEVEL_CONFIGURATOR_NAME, LEVEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR) MAKE_GRIB2_LEVEL_CONFIGURATOR( THIS%LEVEL_, THIS%TEMPLATE_NUMBER_, LEVEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( LEVEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_LEVEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'level configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_LEVEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make level configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate level configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_BUILD_LEVEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_BUILD_ENSEMBLE_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_143_BUILD_ENSEMBLE_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_ENSEMBLE_FACTORY_MOD, ONLY: MAKE_GRIB2_ENSEMBLE_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_ENSEMBLE_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: ENSEMBLE_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: ENSEMBLE_CONFIGURATOR_NAME='ensemble-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%ENSEMBLE_), ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, ENSEMBLE_CONFIGURATOR_NAME, HAS_ENSEMBLE_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_ENSEMBLE_CONFIGURATOR, ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, ENSEMBLE_CONFIGURATOR_NAME, ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR) MAKE_GRIB2_ENSEMBLE_CONFIGURATOR( THIS%ENSEMBLE_, THIS%TEMPLATE_NUMBER_, ENSEMBLE_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( ENSEMBLE_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_ENSEMBLE_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'ensemble configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_ENSEMBLE_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make ensemble configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate ensemble configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_BUILD_ENSEMBLE_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE -#undef PP_PROCEDURE_TYPE - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_BUILD_TIME_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_143_BUILD_TIME_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_POINT_IN_TIME_FACTORY_MOD, ONLY: MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_TIME_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: TIME_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: TIME_CONFIGURATOR_NAME='point-in-time-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%TIME_), ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, TIME_CONFIGURATOR_NAME, HAS_TIME_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_TIME_CONFIGURATOR, ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, TIME_CONFIGURATOR_NAME, TIME_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR) MAKE_GRIB2_POINT_IN_TIME_CONFIGURATOR( THIS%TIME_, THIS%TEMPLATE_NUMBER_, TIME_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( TIME_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_TIME_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_TIME_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'time configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_TIME_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make time configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_BUILD_TIME_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_BUILD_MODEL_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_143_BUILD_MODEL_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_MODEL_FACTORY_MOD, ONLY: MAKE_GRIB2_MODEL_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_MODEL_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: MODEL_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: MODEL_CONFIGURATOR_NAME='model-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%MODEL_), ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, MODEL_CONFIGURATOR_NAME, HAS_MODEL_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_MODEL_CONFIGURATOR, ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, MODEL_CONFIGURATOR_NAME, MODEL_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR) MAKE_GRIB2_MODEL_CONFIGURATOR( THIS%MODEL_, THIS%TEMPLATE_NUMBER_, MODEL_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( MODEL_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_MODEL_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'model configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_MODEL_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make model configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate time configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_BUILD_MODEL_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'G2S4_143_BUILD_RANDOM_PATTERNS_HANDLER_CFG' -PP_THREAD_SAFE FUNCTION G2S4_143_BUILD_RANDOM_PATTERNS_HANDLER_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_RANDOM_PATTERNS_FACTORY_MOD, ONLY: MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(G2S4_143_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_RANDOM_PATTERNS_CONFIGURATOR - TYPE(YAML_CONFIGURATION_T) :: RANDOM_PATTERNS_CONFIGURATOR_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: RANDOM_PATTERNS_CONFIGURATOR_NAME='random-patterns-configurator' - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_ALREADY_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_CFG_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_RANDOM_PATTERNS_CONFIGURATOR=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_DEALLOCATE=6_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%RANDOM_PATTERNS_), ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, RANDOM_PATTERNS_CONFIGURATOR_NAME, HAS_RANDOM_PATTERNS_CONFIGURATOR, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. HAS_RANDOM_PATTERNS_CONFIGURATOR, ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_CFG_NOT_PRESENT ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( CFG, RANDOM_PATTERNS_CONFIGURATOR_NAME, RANDOM_PATTERNS_CONFIGURATOR_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_RANDOM_PATTERNS_CONFIGURATOR) MAKE_GRIB2_RANDOM_PATTERNS_CONFIGURATOR( THIS%RANDOM_PATTERNS_, THIS%TEMPLATE_NUMBER_, RANDOM_PATTERNS_CONFIGURATOR_CFG, OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_UNABLE_TO_DEALLOCATE ) YAML_DELETE_CONFIGURATION( RANDOM_PATTERNS_CONFIGURATOR_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_ALREADY_ASSOCIATED ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'random patterns configurator already associated' ) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_RANDOM_PATTERNS_CONFIGURATOR_CFG_NOT_PRESENT ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'random patterns configurator configuration not present' ) - CASE ( ERRFLAG_UNABLE_TO_READ_SUBCFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfiguration' ) - CASE ( ERRFLAG_UNABLE_TO_MAKE_RANDOM_PATTERNS_CONFIGURATOR ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make random patterns configurator' ) - CASE ( ERRFLAG_UNABLE_TO_DEALLOCATE ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to deallocate random patterns configurator object' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION G2S4_143_BUILD_RANDOM_PATTERNS_HANDLER_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_SECTION4_143_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_factory_mod.F90 deleted file mode 100644 index 4242e9e07..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section4/grib2_section4_factory_mod.F90 +++ /dev/null @@ -1,823 +0,0 @@ -!> -!> @file grib2_section4_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Section 4 objects. -!> -!> The `GRIB2_SECTION4_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Section 4 objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION4_000_MOD::GRIB2_SECTION4_000_T -!> - @dependency [TYPE] GRIB2_SECTION4_001_MOD::GRIB2_SECTION4_001_T -!> - @dependency [TYPE] GRIB2_SECTION4_008_MOD::GRIB2_SECTION4_008_T -!> - @dependency [TYPE] GRIB2_SECTION4_011_MOD::GRIB2_SECTION4_011_T -!> - @dependency [TYPE] GRIB2_SECTION4_032_MOD::GRIB2_SECTION4_032_T -!> - @dependency [TYPE] GRIB2_SECTION4_040_MOD::GRIB2_SECTION4_040_T -!> - @dependency [TYPE] GRIB2_SECTION4_041_MOD::GRIB2_SECTION4_041_T -!> - @dependency [TYPE] GRIB2_SECTION4_042_MOD::GRIB2_SECTION4_042_T -!> - @dependency [TYPE] GRIB2_SECTION4_043_MOD::GRIB2_SECTION4_043_T -!> - @dependency [TYPE] GRIB2_SECTION4_099_MOD::GRIB2_SECTION4_099_T -!> - @dependency [TYPE] GRIB2_SECTION4_103_MOD::GRIB2_SECTION4_103_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section4_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION4_FACTORY_MOD' -MODULE GRIB2_SECTION4_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the section4 number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: SECTION4_KEY='template-number' - - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_SECTION4 - MODULE PROCEDURE MAKE_GRIB2_SECTION4_CFG -END INTERFACE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_SECTION4 -PUBLIC :: DESTROY_GRIB2_SECTION4 - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Section 4 objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Section 4 object -!> based on the provided parameters. It assigns the proper type (`GRIB2_SECTION4_000_T`) -!> to the `GRIB2_SECTION4` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_SECTION4 The GRIB2 Section 4 object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 4 object. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_SECTION4_000_T` -!> - `GRIB2_SECTION4_001_T` -!> - `GRIB2_SECTION4_008_T` -!> - `GRIB2_SECTION4_011_T` -!> - `GRIB2_SECTION4_032_T` -!> - `GRIB2_SECTION4_040_T` -!> - `GRIB2_SECTION4_041_T` -!> - `GRIB2_SECTION4_042_T` -!> - `GRIB2_SECTION4_043_T` -!> - `GRIB2_SECTION4_045_T` -!> - `GRIB2_SECTION4_046_T` -!> - `GRIB2_SECTION4_048_T` -!> - `GRIB2_SECTION4_049_T` -!> - `GRIB2_SECTION4_050_T` -!> - `GRIB2_SECTION4_086_T` -!> - `GRIB2_SECTION4_087_T` -!> - `GRIB2_SECTION4_099_T` -!> - `GRIB2_SECTION4_100_T` -!> - `GRIB2_SECTION4_103_T` -!> - `GRIB2_SECTION4_104_T` -!> - `GRIB2_SECTION4_105_T` -!> - `GRIB2_SECTION4_107_T` -!> - `GRIB2_SECTION4_108_T` -!> - `GRIB2_SECTION4_109_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION4_000_MOD::GRIB2_SECTION4_000_T -!> - @dependency [TYPE] GRIB2_SECTION4_001_MOD::GRIB2_SECTION4_001_T -!> - @dependency [TYPE] GRIB2_SECTION4_008_MOD::GRIB2_SECTION4_008_T -!> - @dependency [TYPE] GRIB2_SECTION4_011_MOD::GRIB2_SECTION4_011_T -!> - @dependency [TYPE] GRIB2_SECTION4_032_MOD::GRIB2_SECTION4_032_T -!> - @dependency [TYPE] GRIB2_SECTION4_040_MOD::GRIB2_SECTION4_040_T -!> - @dependency [TYPE] GRIB2_SECTION4_041_MOD::GRIB2_SECTION4_041_T -!> - @dependency [TYPE] GRIB2_SECTION4_042_MOD::GRIB2_SECTION4_042_T -!> - @dependency [TYPE] GRIB2_SECTION4_043_MOD::GRIB2_SECTION4_043_T -!> - @dependency [TYPE] GRIB2_SECTION4_045_MOD::GRIB2_SECTION4_045_T -!> - @dependency [TYPE] GRIB2_SECTION4_046_MOD::GRIB2_SECTION4_046_T -!> - @dependency [TYPE] GRIB2_SECTION4_048_MOD::GRIB2_SECTION4_048_T -!> - @dependency [TYPE] GRIB2_SECTION4_049_MOD::GRIB2_SECTION4_049_T -!> - @dependency [TYPE] GRIB2_SECTION4_050_MOD::GRIB2_SECTION4_050_T -!> - @dependency [TYPE] GRIB2_SECTION4_086_MOD::GRIB2_SECTION4_086_T -!> - @dependency [TYPE] GRIB2_SECTION4_087_MOD::GRIB2_SECTION4_087_T -!> - @dependency [TYPE] GRIB2_SECTION4_099_MOD::GRIB2_SECTION4_099_T -!> - @dependency [TYPE] GRIB2_SECTION4_100_MOD::GRIB2_SECTION4_100_T -!> - @dependency [TYPE] GRIB2_SECTION4_103_MOD::GRIB2_SECTION4_103_T -!> - @dependency [TYPE] GRIB2_SECTION4_104_MOD::GRIB2_SECTION4_104_T -!> - @dependency [TYPE] GRIB2_SECTION4_105_MOD::GRIB2_SECTION4_105_T -!> - @dependency [TYPE] GRIB2_SECTION4_107_MOD::GRIB2_SECTION4_107_T -!> - @dependency [TYPE] GRIB2_SECTION4_108_MOD::GRIB2_SECTION4_108_T -!> - @dependency [TYPE] GRIB2_SECTION4_109_MOD::GRIB2_SECTION4_109_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION4_000_T -!> @see GRIB2_SECTION4_001_T -!> @see GRIB2_SECTION4_008_T -!> @see GRIB2_SECTION4_011_T -!> @see GRIB2_SECTION4_032_T -!> @see GRIB2_SECTION4_040_T -!> @see GRIB2_SECTION4_041_T -!> @see GRIB2_SECTION4_042_T -!> @see GRIB2_SECTION4_043_T -!> @see GRIB2_SECTION4_045_T -!> @see GRIB2_SECTION4_046_T -!> @see GRIB2_SECTION4_048_T -!> @see GRIB2_SECTION4_049_T -!> @see GRIB2_SECTION4_050_T -!> @see GRIB2_SECTION4_086_T -!> @see GRIB2_SECTION4_087_T -!> @see GRIB2_SECTION4_099_T -!> @see GRIB2_SECTION4_100_T -!> @see GRIB2_SECTION4_103_T -!> @see GRIB2_SECTION4_104_T -!> @see GRIB2_SECTION4_105_T -!> @see GRIB2_SECTION4_107_T -!> @see GRIB2_SECTION4_108_T -!> @see GRIB2_SECTION4_109_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_SECTION4_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_SECTION4_CFG( GRIB2_SECTION4, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - - USE :: GRIB2_SECTION4_000_MOD, ONLY: GRIB2_SECTION4_000_T - USE :: GRIB2_SECTION4_001_MOD, ONLY: G2S4_001_T - USE :: GRIB2_SECTION4_008_MOD, ONLY: GRIB2_SECTION4_008_T - USE :: GRIB2_SECTION4_011_MOD, ONLY: GRIB2_SECTION4_011_T - USE :: GRIB2_SECTION4_032_MOD, ONLY: GRIB2_SECTION4_032_T - USE :: GRIB2_SECTION4_033_MOD, ONLY: GRIB2_SECTION4_033_T - USE :: GRIB2_SECTION4_040_MOD, ONLY: GRIB2_SECTION4_040_T - USE :: GRIB2_SECTION4_041_MOD, ONLY: G2S4_041_T - USE :: GRIB2_SECTION4_042_MOD, ONLY: GRIB2_SECTION4_042_T - USE :: GRIB2_SECTION4_043_MOD, ONLY: GRIB2_SECTION4_043_T - USE :: GRIB2_SECTION4_045_MOD, ONLY: G2S4_045_T - USE :: GRIB2_SECTION4_046_MOD, ONLY: GRIB2_SECTION4_046_T - USE :: GRIB2_SECTION4_048_MOD, ONLY: GRIB2_SECTION4_048_T - USE :: GRIB2_SECTION4_049_MOD, ONLY: G2S4_049_T -#if 0 - USE :: GRIB2_SECTION4_050_MOD, ONLY: GRIB2_SECTION4_050_T -#endif - USE :: GRIB2_SECTION4_060_MOD, ONLY: G2S4_060_T - USE :: GRIB2_SECTION4_061_MOD, ONLY: GRIB2_SECTION4_061_T -#if 0 - USE :: GRIB2_SECTION4_086_MOD, ONLY: GRIB2_SECTION4_086_T - USE :: GRIB2_SECTION4_087_MOD, ONLY: GRIB2_SECTION4_087_T -#endif - USE :: GRIB2_SECTION4_099_MOD, ONLY: GRIB2_SECTION4_099_T - USE :: GRIB2_SECTION4_100_MOD, ONLY: GRIB2_SECTION4_100_T - USE :: GRIB2_SECTION4_103_MOD, ONLY: GRIB2_SECTION4_103_T - USE :: GRIB2_SECTION4_104_MOD, ONLY: GRIB2_SECTION4_104_T -#if 0 - USE :: GRIB2_SECTION4_105_MOD, ONLY: GRIB2_SECTION4_105_T - USE :: GRIB2_SECTION4_107_MOD, ONLY: GRIB2_SECTION4_107_T - USE :: GRIB2_SECTION4_108_MOD, ONLY: GRIB2_SECTION4_108_T - USE :: GRIB2_SECTION4_109_MOD, ONLY: GRIB2_SECTION4_109_T -#endif - USE :: GRIB2_SECTION4_143_MOD, ONLY: G2S4_143_T - - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION4 - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_4=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_SECTION4_TYPE_FROM_CFG( CFG, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE (0) - - ALLOCATE( GRIB2_SECTION4_000_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (1) - - ALLOCATE( G2S4_001_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (8) - - ALLOCATE( GRIB2_SECTION4_008_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (11) - - ALLOCATE( GRIB2_SECTION4_011_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (32) - - ALLOCATE( GRIB2_SECTION4_032_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (33) - - ALLOCATE( GRIB2_SECTION4_033_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (40) - - ALLOCATE( GRIB2_SECTION4_040_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (41) - - ALLOCATE( G2S4_041_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (42) - - ALLOCATE( GRIB2_SECTION4_042_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (43) - - ALLOCATE( GRIB2_SECTION4_043_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (45) - - ALLOCATE( G2S4_045_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (46) - - ALLOCATE( GRIB2_SECTION4_046_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (48) - - ALLOCATE( GRIB2_SECTION4_048_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (49) - - ALLOCATE( G2S4_049_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -#if 0 - CASE (50) - - ALLOCATE( GRIB2_SECTION4_050_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -#endif - - CASE (60) - - ALLOCATE( G2S4_060_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (61) - - ALLOCATE( GRIB2_SECTION4_061_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -#if 0 - CASE (86) - - ALLOCATE( GRIB2_SECTION4_086_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (87) - - ALLOCATE( GRIB2_SECTION4_087_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -#endif - - CASE (99) - - ALLOCATE( GRIB2_SECTION4_099_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (100) - - ALLOCATE( GRIB2_SECTION4_100_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - CASE (103) - - ALLOCATE( GRIB2_SECTION4_103_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (104) - - ALLOCATE( GRIB2_SECTION4_104_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - -#if 0 - CASE (105) - - ALLOCATE( GRIB2_SECTION4_105_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (107) - - ALLOCATE( GRIB2_SECTION4_107_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (108) - - ALLOCATE( GRIB2_SECTION4_108_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE (109) - - ALLOCATE( GRIB2_SECTION4_109_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) -#endif - CASE (143) - - ALLOCATE( G2S4_143_T::GRIB2_SECTION4, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_4 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_SECTION4%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNKNOWN_SECTION_4) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown section4 number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section4 number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing section4 number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_SECTION4_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Destroys a GRIB2 Section 4 structure. -!> -!> This function takes a GRIB2 Section 4 object (`GRIB2_SECTION4`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_SECTION4 The GRIB2 Section 4 object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION4 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_SECTION4' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_SECTION4( GRIB2_SECTION4, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION4 - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_SECTION4), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_SECTION4%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_SECTION4, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'section0 to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating section0 number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing section0' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_SECTION4 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Section 4 object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 4 object. -!> @param [out] SECTION4_TYPE Identifier of the section0 type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION4 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_SECTION4_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_SECTION4_TYPE_FROM_CFG( CFG, SECTION4_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KIND=JPIB_K), INTENT(OUT) :: SECTION4_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CSECTION4_TYPE - LOGICAL :: HAS_SECTION4 - LOGICAL :: SECTION4_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - SECTION4_TYPE = -1_JPIB_K - - !> Check if configuration has the SECTION4 key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, SECTION4_KEY, HAS_SECTION4, HOOKS ) - - !> Read the SECTION4 template number - IF ( HAS_SECTION4 ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, SECTION4_KEY, CSECTION4_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CSECTION4_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CSECTION4_TYPE, SECTION4_IS_INTEGER, HOOKS ) - IF ( SECTION4_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CSECTION4_TYPE, SECTION4_TYPE, HOOKS ) - ELSE - ! TODO: Somehow decide automatically whcih SECTION4 to use. String can be - ! a label for the method to use. - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - ENDIF - DEALLOCATE(CSECTION4_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SECTION4 ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating SECTION4 number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_SECTION4_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION4_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/CMakeLists.txt b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/CMakeLists.txt deleted file mode 100644 index 25fc82a3f..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -set(MULTIOM_ENCODERS_GRIB2_SECTION5_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -# Enter in the module -message("${OFFSET} + grib2 section5 sources: ${MULTIOM_ENCODERS_DIR}") - -# Recursive print -set(OFFSET ${OFFSET}${DOFFSET}) - - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION5_MAIN_SOURCES - ${MULTIOM_ENCODERS_GRIB2_SECTION5_DIR}/grib2_section5_000_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION5_DIR}/grib2_section5_042_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION5_DIR}/grib2_section5_051_mod.F90 - ${MULTIOM_ENCODERS_GRIB2_SECTION5_DIR}/grib2_section5_factory_mod.F90 -) - -# Collect source files in module2 -set( MULTIOM_ENCODER_GRIB2_SECTION5_SOURCES - ${MULTIOM_ENCODER_GRIB2_SECTION5_MAIN_SOURCES} - CACHE INTERNAL "List of all sources in encoders directory" -) - -# Optionally, message what has been appended for debugging -foreach(source_file IN LISTS MULTIOM_ENCODER_GRIB2_SECTION5_MAIN_SOURCES) - - # Extract the filename (without the directory) - get_filename_component(filename ${source_file} NAME) - - # Print the filename - message("${OFFSET} - ${filename}") -endforeach() \ No newline at end of file diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_000_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_000_mod.F90 deleted file mode 100644 index 57e468e2c..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_000_mod.F90 +++ /dev/null @@ -1,899 +0,0 @@ -!> -!> @file grib2_section5_000_mod.F90 -!> -!> @brief Module for managing GRIB2 SECTION 5 operations. -!> -!> The `GRIB2_SECTION5_000_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 SECTION 5 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 SECTION 5 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION5_000_INIT -!> - @see GRIB2_SECTION5_000_ALLOCATE -!> - @see GRIB2_SECTION5_000_PRESET -!> - @see GRIB2_SECTION5_000_RUNTIME -!> - @see GRIB2_SECTION5_000_TO_BE_ENCODED -!> - @see GRIB2_SECTION5_000_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section5_000_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION5_000_MOD' -MODULE GRIB2_SECTION5_000_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 SECTION 5 handler. -!> -!> The `GRIB2_SECTION5_000_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 SECTION 5 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION5_000_T - - !> Default symbols visibility - PRIVATE - - !> Default bits per value - INTEGER(KIND=JPIB_K) :: DEFAULT_BITS_PER_VALUE_ = UNDEF_PARAM_E - -CONTAINS - - !> - !> @brief Initializes the GRIB2 SECTION 5 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION5_000_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 SECTION 5 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION5_000_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 SECTION 5 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION5_000_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 SECTION 5 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION5_000_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 SECTION 5 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION5_000_FREE - - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION5_000_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 SECTION 5 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 SECTION 5 object (`THIS`) using YAML configuration data (`CFG`). -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION5_@XXX@_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_000_INIT -!> @see GRIB2_SECTION5_000_ALLOCATE -!> @see GRIB2_SECTION5_000_PRESET -!> @see GRIB2_SECTION5_000_RUNTIME -!> @see GRIB2_SECTION5_000_TO_BE_ENCODED -!> @see GRIB2_SECTION5_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_000_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_000_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_BITS_PER_VALUE - INTEGER(KIND=JPIB_K) :: IO_ERROR - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALUD_BITS_PER_VALUE=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'DATA_REPRESENTATION_SECTION' - THIS%KIND_ = '5.0' - - ! Logging informations - PP_LOG_TODO( 'Cfg initialization of GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//'('//TRIM(ADJUSTL(THIS%KIND_))//')' ) - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'bits-per-value', HAS_BITS_PER_VALUE, HOOKS ) - - ! Read the subCentre - IF (HAS_BITS_PER_VALUE) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'bits-per-value', THIS%DEFAULT_BITS_PER_VALUE_, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%DEFAULT_BITS_PER_VALUE_.LT.1_JPIB_K, ERRFLAG_INVALUD_BITS_PER_VALUE ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%DEFAULT_BITS_PER_VALUE_.GT.64_JPIB_K, ERRFLAG_INVALUD_BITS_PER_VALUE ) - ELSE - THIS%DEFAULT_BITS_PER_VALUE_ = 16_JPIB_K - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Local debug variables - CHARACTER(LEN=32) :: CTMP - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_INVALUD_BITS_PER_VALUE ) - CTMP = REPEAT( ' ', 32 ) - WRITE(CTMP, '(I32)', IOSTAT=IO_ERROR) THIS%DEFAULT_BITS_PER_VALUE_ - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid bits per value' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'boundaries are: [1-64]' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'requested bits per value: '//TRIM(ADJUSTL(CTMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_000_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 SECTION 5 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 SECTION 5 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION5_@XXX@_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_000_ALLOCATE -!> @see GRIB2_SECTION5_000_INIT -!> @see GRIB2_SECTION5_000_PRESET -!> @see GRIB2_SECTION5_000_RUNTIME -!> @see GRIB2_SECTION5_000_TO_BE_ENCODED -!> @see GRIB2_SECTION5_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_000_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_000_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_INFO( 'Allocating GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'.'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Allocate the proper template for the section - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'dataRepresentationTemplateNumber', 0_JPIB_K ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_000_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 SECTION 5 using the provided parameters and message data. -!> -!> This function presets a GRIB2 SECTION 5 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION5_000_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_000_PRESET -!> @see GRIB2_SECTION5_000_ALLOCATE -!> @see GRIB2_SECTION5_000_INIT -!> @see GRIB2_SECTION5_000_RUNTIME -!> @see GRIB2_SECTION5_000_TO_BE_ENCODED -!> @see GRIB2_SECTION5_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_000_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_000_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_INFO( 'Runtime GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_)) ) - - ! Set the bits per value (if defined) - IF ( PAR%DATA_REPRESENTATION%BITS_PER_VALUE_ .NE. UNDEF_PARAM_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'bitsPerValue', PAR%DATA_REPRESENTATION%BITS_PER_VALUE_ ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'bitsPerValue', THIS%DEFAULT_BITS_PER_VALUE_ ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_000_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 SECTION 5 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 SECTION 5 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> -!> @param [in] THIS An object of type `GRIB2_SECTION5_000_T` representing the GRIB section to be allocated. -!> @param [in] PARAMS Model parameters used during the runtime process. -!> @param [in] MSG Message structure providing necessary information. -!> @param [in] CURR_TIME Current time used in the runtime process. -!> @param [in] TIME_HISTORY Time history information for the runtime process. -!> @param [inout] METADATA Pointer to metadata involved in the runtime process. -!> @param [in] VERBOSE Logical flag for verbose output during the runtime operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_000_RUNTIME -!> @see GRIB2_SECTION5_000_ALLOCATE -!> @see GRIB2_SECTION5_000_INIT -!> @see GRIB2_SECTION5_000_PRESET -!> @see GRIB2_SECTION5_000_TO_BE_ENCODED -!> @see GRIB2_SECTION5_000_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_000_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_000_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_000_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=0_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_INFO( 'Runtime GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_000_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Frees resources associated with GRIB2 SECTION 5 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 SECTION 5 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION5_@XXX@_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_000_INIT -!> @see GRIB2_SECTION5_000_ALLOCATE -!> @see GRIB2_SECTION5_000_PRESET -!> @see GRIB2_SECTION5_000_RUNTIME -!> @see GRIB2_SECTION5_000_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_000_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_000_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_000_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging informations - PP_LOG_TODO( 'Free GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_000_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION5_000_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_042_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_042_mod.F90 deleted file mode 100644 index 5f60f97c5..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_042_mod.F90 +++ /dev/null @@ -1,900 +0,0 @@ -!> -!> @file grib2_section5_042_mod.F90 -!> -!> @brief Module for managing GRIB2 SECTION 5 operations. -!> -!> The `GRIB2_SECTION5_042_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 SECTION 5 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 SECTION 5 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION5_042_INIT -!> - @see GRIB2_SECTION5_042_ALLOCATE -!> - @see GRIB2_SECTION5_042_PRESET -!> - @see GRIB2_SECTION5_042_RUNTIME -!> - @see GRIB2_SECTION5_042_TO_BE_ENCODED -!> - @see GRIB2_SECTION5_042_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section5_042_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION5_042_MOD' -MODULE GRIB2_SECTION5_042_MOD - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 SECTION 5 handler. -!> -!> The `GRIB2_SECTION5_042_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 SECTION 5 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION5_042_T - - !> Default symbols visibility - PRIVATE - - !> Default bits per value - INTEGER(KIND=JPIB_K) :: DEFAULT_BITS_PER_VALUE_ = UNDEF_PARAM_E - -CONTAINS - - !> - !> @brief Initializes the GRIB2 SECTION 5 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION5_042_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 SECTION 5 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION5_042_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 SECTION 5 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION5_042_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 SECTION 5 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION5_042_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 SECTION 5 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION5_042_FREE - - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION5_042_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 SECTION 5 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 SECTION 5 object (`THIS`) using YAML configuration data (`CFG`). -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION5_@XXX@_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_042_INIT -!> @see GRIB2_SECTION5_042_ALLOCATE -!> @see GRIB2_SECTION5_042_PRESET -!> @see GRIB2_SECTION5_042_RUNTIME -!> @see GRIB2_SECTION5_042_TO_BE_ENCODED -!> @see GRIB2_SECTION5_042_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_042_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_042_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_042_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: HAS_BITS_PER_VALUE - INTEGER(KIND=JPIB_K) :: IO_ERROR - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INVALUD_BITS_PER_VALUE=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'DATA_REPRESENTATION_SECTION' - THIS%KIND_ = '5.42' - - ! Logging informations - PP_LOG_TODO( 'Cfg initialization of GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//'('//TRIM(ADJUSTL(THIS%KIND_))//')' ) - - ! Read the optional configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( CFG, 'bits-per-value', HAS_BITS_PER_VALUE, HOOKS ) - - ! Read the subCentre - IF (HAS_BITS_PER_VALUE) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_INTEGER( CFG, 'bits-per-value', THIS%DEFAULT_BITS_PER_VALUE_, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%DEFAULT_BITS_PER_VALUE_.LT.1_JPIB_K, ERRFLAG_INVALUD_BITS_PER_VALUE ) - PP_DEBUG_CRITICAL_COND_THROW( THIS%DEFAULT_BITS_PER_VALUE_.GT.64_JPIB_K, ERRFLAG_INVALUD_BITS_PER_VALUE ) - ELSE - THIS%DEFAULT_BITS_PER_VALUE_ = 16_JPIB_K - END IF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Local debug variables - CHARACTER(LEN=32) :: CTMP - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_UNABLE_TO_READ_CFG ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration' ) - CASE ( ERRFLAG_INVALUD_BITS_PER_VALUE ) - CTMP = REPEAT( ' ', 32 ) - WRITE(CTMP, '(I32)', IOSTAT=IO_ERROR) THIS%DEFAULT_BITS_PER_VALUE_ - PP_DEBUG_PUSH_MSG_TO_FRAME( 'invalid bits per value' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'boundaries are: [1-64]' ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'requested bits per value: '//TRIM(ADJUSTL(CTMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_042_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 SECTION 5 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 SECTION 5 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION5_@XXX@_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_042_ALLOCATE -!> @see GRIB2_SECTION5_042_INIT -!> @see GRIB2_SECTION5_042_PRESET -!> @see GRIB2_SECTION5_042_RUNTIME -!> @see GRIB2_SECTION5_042_TO_BE_ENCODED -!> @see GRIB2_SECTION5_042_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_042_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_042_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_042_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_INFO( 'Allocating GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'.'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Allocate the proper template for the section - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'dataRepresentationTemplateNumber', 42_JPIB_K ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_042_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 SECTION 5 using the provided parameters and message data. -!> -!> This function presets a GRIB2 SECTION 5 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION5_042_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_042_PRESET -!> @see GRIB2_SECTION5_042_ALLOCATE -!> @see GRIB2_SECTION5_042_INIT -!> @see GRIB2_SECTION5_042_RUNTIME -!> @see GRIB2_SECTION5_042_TO_BE_ENCODED -!> @see GRIB2_SECTION5_042_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_042_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_042_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_042_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_INFO( 'Runtime GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_)) ) - - ! Set the bits per value (if defined) - IF ( PAR%DATA_REPRESENTATION%BITS_PER_VALUE_ .NE. UNDEF_PARAM_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'bitsPerValue', PAR%DATA_REPRESENTATION%BITS_PER_VALUE_ ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'bitsPerValue', THIS%DEFAULT_BITS_PER_VALUE_ ) - ENDIF - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_042_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 SECTION 5 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 SECTION 5 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> -!> @param [in] THIS An object of type `GRIB2_SECTION5_042_T` representing the GRIB section to be allocated. -!> @param [in] PARAMS Model parameters used during the runtime process. -!> @param [in] MSG Message structure providing necessary information. -!> @param [in] CURR_TIME Current time used in the runtime process. -!> @param [in] TIME_HISTORY Time history information for the runtime process. -!> @param [inout] METADATA Pointer to metadata involved in the runtime process. -!> @param [in] VERBOSE Logical flag for verbose output during the runtime operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_042_RUNTIME -!> @see GRIB2_SECTION5_042_ALLOCATE -!> @see GRIB2_SECTION5_042_INIT -!> @see GRIB2_SECTION5_042_PRESET -!> @see GRIB2_SECTION5_042_TO_BE_ENCODED -!> @see GRIB2_SECTION5_042_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_042_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_042_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_042_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=0_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_DEVELOP_STR( 'Runtime GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_042_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 SECTION 5 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 SECTION 5 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION5_@XXX@_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_042_INIT -!> @see GRIB2_SECTION5_042_ALLOCATE -!> @see GRIB2_SECTION5_042_PRESET -!> @see GRIB2_SECTION5_042_RUNTIME -!> @see GRIB2_SECTION5_042_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_042_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_042_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_042_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging informations - PP_LOG_TODO( 'Free GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_042_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION5_042_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_051_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_051_mod.F90 deleted file mode 100644 index ffefc47cf..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_051_mod.F90 +++ /dev/null @@ -1,926 +0,0 @@ -!> -!> @file grib2_section5_051_mod.F90 -!> -!> @brief Module for managing GRIB2 SECTION 5 operations. -!> -!> The `GRIB2_SECTION5_051_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 SECTION 5 objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 SECTION 5 objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_SECTION5_051_INIT -!> - @see GRIB2_SECTION5_051_ALLOCATE -!> - @see GRIB2_SECTION5_051_PRESET -!> - @see GRIB2_SECTION5_051_RUNTIME -!> - @see GRIB2_SECTION5_051_TO_BE_ENCODED -!> - @see GRIB2_SECTION5_051_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section5_051_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION5_051_MOD' -MODULE GRIB2_SECTION5_051_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 SECTION 5 handler. -!> -!> The `GRIB2_SECTION5_051_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 SECTION 5 objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_SECTION5_051_T - - !> Default symbols visibility - PRIVATE - - !> TODO: Add configuration for these variables - LOGICAL :: LFORCEZ_ = .FALSE. - LOGICAL :: LFORCELNSP_ = .FALSE. - -CONTAINS - - !> - !> @brief Initializes the GRIB2 SECTION 5 object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_SECTION5_051_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 SECTION 5 object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_SECTION5_051_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 SECTION 5 object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_SECTION5_051_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 SECTION 5 operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_SECTION5_051_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 SECTION 5 object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_SECTION5_051_FREE - - -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_SECTION5_051_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 SECTION 5 for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 SECTION 5 object (`THIS`) using YAML configuration data (`CFG`). -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION5_@XXX@_T` representing the GRIB section being initialized. -!> @param [in] CFG The YAML configuration object of type `YAML_CONFIGURATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> -!> @susection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_051_INIT -!> @see GRIB2_SECTION5_051_ALLOCATE -!> @see GRIB2_SECTION5_051_PRESET -!> @see GRIB2_SECTION5_051_RUNTIME -!> @see GRIB2_SECTION5_051_TO_BE_ENCODED -!> @see GRIB2_SECTION5_051_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_051_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_051_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_051_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialise the section - THIS%TYPE_ = 'SECTION' - THIS%SUBTYPE_ = 'DATA_REPRESENTATION_SECTION' - THIS%KIND_ = '5.51' - - ! Logging informations - PP_LOG_TODO( 'Initialization of GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//'('//TRIM(ADJUSTL(THIS%KIND_))//')' ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_051_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 SECTION 5 using the provided parameters. -!> -!> This function allocates resources for a GRIB2 SECTION 5 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION5_@XXX@_T` representing the GRIB section to allocate resources for. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used during allocation. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the allocation process. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_051_ALLOCATE -!> @see GRIB2_SECTION5_051_INIT -!> @see GRIB2_SECTION5_051_PRESET -!> @see GRIB2_SECTION5_051_RUNTIME -!> @see GRIB2_SECTION5_051_TO_BE_ENCODED -!> @see GRIB2_SECTION5_051_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_051_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_051_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_051_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_INFO( 'Allocating GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'.'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Allocate the proper template for the section - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'dataRepresentationTemplateNumber', 51_JPIB_K ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_051_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 SECTION 5 using the provided parameters and message data. -!> -!> This function presets a GRIB2 SECTION 5 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> @param [in] THIS An object of type `GRIB2_SECTION5_051_T` representing the GRIB section to be preset. -!> @param [in] MSG The message object of type `FORTRAN_MESSAGE_T` used to handle preset-related messaging. -!> @param [in] PAR The parametrization structure of type `PARAMETRIZATION_T` used for the preset operation. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA A pointer to the metadata object of type `METADATA_BASE_A` used for presetting the section. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_051_PRESET -!> @see GRIB2_SECTION5_051_ALLOCATE -!> @see GRIB2_SECTION5_051_INIT -!> @see GRIB2_SECTION5_051_RUNTIME -!> @see GRIB2_SECTION5_051_TO_BE_ENCODED -!> @see GRIB2_SECTION5_051_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_051_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_051_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: DATAKINDS_DEF_MOD, ONLY: JPRD_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_CODES_MOD, ONLY: NGRBLNSP - USE :: ENUMERATORS_MOD, ONLY: LEVTYPE_ML_E - USE :: ENUMERATORS_MOD, ONLY: UNDEF_PARAM_E - USE :: GENERAL_UTILS_MOD, ONLY: NEED_FIT_SPECTRUM - USE :: GRIB_CODES_MOD, ONLY: NGRBLNSP - USE :: GRIB_CODES_MOD, ONLY: NGRBZ - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_051_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: IBITS - INTEGER(KIND=JPIB_K) :: ISPEC2 - INTEGER(KIND=JPIB_K) :: IBITSSH - INTEGER(KIND=JPIB_K) :: ISTRUNC - REAL(KIND=JPRD_K) :: ZP - REAL(KIND=JPRD_K) :: ZBETA0 - REAL(KIND=JPRD_K) :: ZBETA1 - REAL(KIND=JPRD_K) :: ZMIN - REAL(KIND=JPRD_K) :: ZMAX - LOGICAL :: LNFT - - !> Error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NEED_FIT_SPECTRUM=2_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_INFO( 'Runtime GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - - - PP_TRYCALL(ERRFLAG_NEED_FIT_SPECTRUM) NEED_FIT_SPECTRUM(MSG%TRUNCATION, LNFT,HOOKS) - - IF ( MSG%PARAM .EQ. NGRBLNSP .AND. & -& MSG%LEVTYPE .EQ. LEVTYPE_ML_E ) THEN - IBITSSH = PAR%DATA_REPRESENTATION%BITS_PER_VALUE_ - ELSE - IBITSSH = 16 - ENDIF - - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'numberOfBitsContainingEachPackedValue', PAR%DATA_REPRESENTATION%BITS_PER_VALUE_ ) - - IF ( THIS%LFORCEZ_ .AND. & -& MSG%PARAM .EQ. NGRBZ .AND. & -& MSG%LEVTYPE .EQ. LEVTYPE_ML_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'laplacianOperator',0.5_JPRD_K) - ELSEIF ( THIS%LFORCELNSP_ .AND. & -& MSG%PARAM .EQ. NGRBLNSP .AND. & -& MSG%LEVTYPE .EQ. LEVTYPE_ML_E ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA,'laplacianOperator',0.5_JPRD_K) - ELSEIF ( LNFT ) THEN - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'laplacianOperator',PAR%DATA_REPRESENTATION%LAPLACIAN_SCALE_FACTOR_ ) - ELSE - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'laplacianOperator', 0.0_JPRD_K ) - ENDIF - - IF ( MSG%TRUNCATION .NE. UNDEF_PARAM_E ) THEN - IF( MSG%TRUNCATION .GE. 213 ) THEN - ISTRUNC = 20 - ELSE - ISTRUNC = MIN( 10 ,MSG%TRUNCATION ) - ENDIF - ELSE - ISTRUNC = 20 - ENDIF - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'subSetJ', ISTRUNC ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'subSetK', ISTRUNC ) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'subSetM', ISTRUNC ) - - ISPEC2 = (ISTRUNC+1)*(ISTRUNC+2) - PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'TS', ISPEC2 ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'JS', ISTRUNC ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'KS', ISTRUNC ) - ! PP_METADATA_SET( METADATA, ERRFLAG_METADATA, 'MS', ISTRUNC ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE ( ERRFLAG_NEED_FIT_SPECTRUM ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error in NEED_FIT_SPECTRUM' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_051_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 SECTION 5 using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 SECTION 5 object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> -!> @param [in] THIS An object of type `GRIB2_SECTION5_051_T` representing the GRIB section to be allocated. -!> @param [in] PARAMS Model parameters used during the runtime process. -!> @param [in] MSG Message structure providing necessary information. -!> @param [in] CURR_TIME Current time used in the runtime process. -!> @param [in] TIME_HISTORY Time history information for the runtime process. -!> @param [inout] METADATA Pointer to metadata involved in the runtime process. -!> @param [in] VERBOSE Logical flag for verbose output during the runtime operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_051_RUNTIME -!> @see GRIB2_SECTION5_051_ALLOCATE -!> @see GRIB2_SECTION5_051_INIT -!> @see GRIB2_SECTION5_051_PRESET -!> @see GRIB2_SECTION5_051_TO_BE_ENCODED -!> @see GRIB2_SECTION5_051_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_051_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_051_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_051_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=0_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(METADATA), ERRFLAG_METADATA ) - - ! Logging informations - PP_LOG_INFO( 'Runtime GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE ( ERRFLAG_METADATA ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_051_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 SECTION 5 object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 SECTION 5 object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB2_SECTION5_@XXX@_T` representing the GRIB section to be freed. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION5_051_INIT -!> @see GRIB2_SECTION5_051_ALLOCATE -!> @see GRIB2_SECTION5_051_PRESET -!> @see GRIB2_SECTION5_051_RUNTIME -!> @see GRIB2_SECTION5_051_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_SECTION5_051_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_SECTION5_051_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_SECTION5_051_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Logging informations - PP_LOG_TODO( 'Free GRIB2 Section: '//TRIM(ADJUSTL(THIS%TYPE_))//'::'//TRIM(ADJUSTL(THIS%SUBTYPE_))//': Nothing to be done' ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_SECTION5_051_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION5_051_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_factory_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_factory_mod.F90 deleted file mode 100644 index ca4d38ace..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2-section5/grib2_section5_factory_mod.F90 +++ /dev/null @@ -1,593 +0,0 @@ -!> -!> @file grib2_section5_factory_mod.F90 -!> -!> @brief Module containing the factory function for creating or initializing GRIB2 Section 5 objects. -!> -!> The `GRIB2_SECTION5_FACTORY_MOD` provides a factory function that creates or initializes -!> instances of GRIB2 Section 5 objects. The function relies on various data structures and -!> types defined within the model's core and data types modules, as well as a YAML configuration -!> for initializing the section's parameters. Debugging, logging, and tracing features are enabled -!> via preprocessor directives to allow additional output when needed. -!> -!> @section local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION5_001_MOD::GRIB2_SECTION5_001_T -!> - @dependency [TYPE] GRIB2_SECTION5_042_MOD::GRIB2_SECTION5_042_T -!> - @dependency [TYPE] GRIB2_SECTION5_051_MOD::GRIB2_SECTION5_051_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_section5_factory_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_SECTION5_FACTORY_MOD' -MODULE GRIB2_SECTION5_FACTORY_MOD - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> Key to be used to recover the section5 number from the YAML configuration. -CHARACTER(LEN=*), PARAMETER :: SECTION5_KEY='template-number' - -!> -!> Generic interface to the make encoder function. -INTERFACE MAKE_GRIB2_SECTION5 - MODULE PROCEDURE MAKE_GRIB2_SECTION5_CFG -END INTERFACE - -!> -!> Public symbols (dataTypes) -PUBLIC :: MAKE_GRIB2_SECTION5 -PUBLIC :: DESTROY_GRIB2_SECTION5 - -CONTAINS - -!> -!> @brief Factory function for creating or initializing GRIB2 Section 5 objects. -!> -!> This function acts as a factory for creating or initializing a GRIB2 Section 5 object -!> based on the provided parameters. It assigns the proper type (`GRIB2_SECTION5_000_T`) -!> to the `GRIB2_SECTION5` object and configures it using the provided model parameters, -!> ID, and YAML configuration. If verbose mode is enabled, additional debug information -!> is output during the process. -!> -!> @param [inout] GRIB2_SECTION5 The GRIB2 Section 5 object that will be created or initialized. -!> It must be a pointer of type `GRIB_SECTION_BASE_A`. -!> @param [in] ID Integer identifier for the GRIB2 Section 5 object. -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 5 object. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Section that can be constructed with this factory -!> - `GRIB2_SECTION5_001_T` -!> - `GRIB2_SECTION5_042_T` -!> - `GRIB2_SECTION5_051_T` -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> - @dependency [TYPE] GRIB2_SECTION5_001_MOD::GRIB2_SECTION5_001_T -!> - @dependency [TYPE] GRIB2_SECTION5_042_MOD::GRIB2_SECTION5_042_T -!> - @dependency [TYPE] GRIB2_SECTION5_051_MOD::GRIB2_SECTION5_051_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_SECTION3_040_T -!> @see GRIB2_SECTION3_050_T -!> @see GRIB2_SECTION3_101_T -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'MAKE_GRIB2_SECTION5_CFG' -PP_THREAD_SAFE FUNCTION MAKE_GRIB2_SECTION5_CFG( GRIB2_SECTION5, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: GRIB2_SECTION5_000_MOD, ONLY: GRIB2_SECTION5_000_T - USE :: GRIB2_SECTION5_042_MOD, ONLY: GRIB2_SECTION5_042_T - USE :: GRIB2_SECTION5_051_MOD, ONLY: GRIB2_SECTION5_051_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION5 - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: ID - INTEGER(KIND=JPIB_K) :: ALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNKNOWN_SECTION_5=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_ALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_INITIALIZATION_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SECTION_TYPE=4_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Read the encoder type from the configuration - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) READ_GRIB2_SECTION5_TYPE_FROM_CFG( CFG, ID, HOOKS ) - - ! Initialize the section - SELECT CASE( ID ) - - CASE( 0 ) - - ALLOCATE( GRIB2_SECTION5_000_T::GRIB2_SECTION5, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 42 ) - - ALLOCATE( GRIB2_SECTION5_042_T::GRIB2_SECTION5, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE( 51 ) - - ALLOCATE( GRIB2_SECTION5_051_T::GRIB2_SECTION5, STAT=ALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( ALLOC_STATUS.NE.0, ERRFLAG_ALLOCATION_ERROR ) - - CASE DEFAULT - - PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNKNOWN_SECTION_5 ) - - END SELECT - - !> Initialization of the section - PP_TRYCALL(ERRFLAG_INITIALIZATION_ERROR) GRIB2_SECTION5%INIT( CFG, OPT, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - CHARACTER(LEN=32) :: TMP - - ! Initialize error frame - PP_DEBUG_PUSH_FRAME() - - TMP = REPEAT(' ', 32) - WRITE(TMP,'(I32)') ID - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_UNABLE_TO_READ_SECTION_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to read section1 type' ) - CASE (ERRFLAG_UNKNOWN_SECTION_5) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unknown section5 number: '//TRIM(ADJUSTL(TMP)) ) - CASE (ERRFLAG_ALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error allocating section5 number: '//TRIM(ADJUSTL(TMP)) ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_INITIALIZATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error initializing section5 number: '//TRIM(ADJUSTL(TMP)) ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION MAKE_GRIB2_SECTION5_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Destroys a GRIB2 Section 5 structure. -!> -!> This function takes a GRIB2 Section 5 object (`GRIB2_SECTION5`) and performs -!> the necessary cleanup, freeing any associated resources. It also supports a -!> `VERBOSE` mode for detailed output during the destruction process. -!> -!> @section interface -!> @param[in,out] GRIB2_SECTION5 The GRIB2 Section 5 object to be destroyed. -!> The structure is modified in place. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION5 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'DESTROY_GRIB2_SECTION5' -PP_THREAD_SAFE FUNCTION DESTROY_GRIB2_SECTION5( GRIB2_SECTION5, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - CLASS(GRIB_SECTION_BASE_A), POINTER, INTENT(INOUT) :: GRIB2_SECTION5 - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_FREE_ERROR=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ASSOCIATED=1_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Check if the section is associated - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ASSOCIATED(GRIB2_SECTION5), ERRFLAG_NOT_ASSOCIATED ) - - !> Free the section - PP_TRYCALL(ERRFLAG_FREE_ERROR) GRIB2_SECTION5%FREE( OPT, HOOKS ) - - ! Initialize the section - DEALLOCATE( GRIB2_SECTION5, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG ) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'section5 to destroy is not associated' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating section5 number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_FREE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error destructing section5' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION DESTROY_GRIB2_SECTION5 -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Read from the YAML configuration the type of the GRIB2 Section 5 object. -!> -!> @section interface -!> @param [in] CFG YAML configuration object used to configure the GRIB2 Section 5 object. -!> @param [out] SECTION5_TYPE Identifier of the section5 type read from the configuration. -!> @param [in,out] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure of the operation. -!> Possible values: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection module dependencies -!> - @dependency [PARAMETER] OM_CORE_MOD::JPIB_K -!> -!> @subsection special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see MAKE_GRIB2_SECTION5 -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'READ_GRIB2_SECTION5_TYPE_FROM_CFG' -PP_THREAD_SAFE FUNCTION READ_GRIB2_SECTION5_TYPE_FROM_CFG( CFG, SECTION5_TYPE, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_READ_STRING - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_IS_INTEGER - USE :: CONFIGURATION_UTILS_MOD, ONLY: STRING_TO_INTEGER - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - ! Dummy arguments - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - INTEGER(KIND=JPIB_K), INTENT(OUT) :: SECTION5_TYPE - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - ! Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: DEALLOC_STATUS - CHARACTER(LEN=:), ALLOCATABLE :: ERRMSG - CHARACTER(LEN=:), ALLOCATABLE :: CSECTION5_TYPE - LOGICAL :: HAS_SECTION5 - LOGICAL :: SECTION5_IS_INTEGER - - ! Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_NOT_ALLOCATED_AFTER_READ=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_DEALLOCATION_ERROR=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_NOT_PRESENT=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_KEY_IS_NOT_INTEGER=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_KEY=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_READ_ERROR=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_IS_INTEGER=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_STRING_TO_INTEGER=8_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialization - SECTION5_TYPE = -1_JPIB_K - - !> Check if configuration has the SECTION5 key - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_KEY) YAML_CONFIGURATION_HAS_KEY( CFG, SECTION5_KEY, HAS_SECTION5, HOOKS ) - - !> Read the SECTION5 template number - IF ( HAS_SECTION5 ) THEN - PP_TRYCALL(ERRFLAG_READ_ERROR) YAML_READ_STRING( CFG, SECTION5_KEY, CSECTION5_TYPE, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(CSECTION5_TYPE), ERRFLAG_NOT_ALLOCATED_AFTER_READ ) - PP_TRYCALL( ERRFLAG_STRING_IS_INTEGER ) STRING_IS_INTEGER( CSECTION5_TYPE, SECTION5_IS_INTEGER, HOOKS ) - IF ( SECTION5_IS_INTEGER ) THEN - PP_TRYCALL( ERRFLAG_STRING_TO_INTEGER ) STRING_TO_INTEGER( CSECTION5_TYPE, SECTION5_TYPE, HOOKS ) - ELSE - ! TODO: Somehow decide automatically whcih SECTION5 to use. String can be - ! a label for the method to use. - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_IS_NOT_INTEGER ) - ENDIF - DEALLOCATE(CSECTION5_TYPE, STAT=DEALLOC_STATUS, ERRMSG=ERRMSG) - PP_DEBUG_CRITICAL_COND_THROW( DEALLOC_STATUS.NE.0, ERRFLAG_DEALLOCATION_ERROR ) - ELSE - ! TODO - PP_DEBUG_CRITICAL_THROW( ERRFLAG_KEY_NOT_PRESENT ) - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (on success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE (ERRFLAG_NOT_ALLOCATED_AFTER_READ) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'SECTION5 ctype not allocated after reading' ) - CASE (ERRFLAG_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating SECTION5 number' ) - IF ( ALLOCATED(ERRMSG) ) THEN - PP_DEBUG_PUSH_MSG_TO_FRAME( TRIM(ADJUSTL(ERRMSG)) ) - DEALLOCATE(ERRMSG) - ENDIF - CASE (ERRFLAG_KEY_NOT_PRESENT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not present' ) - CASE (ERRFLAG_KEY_IS_NOT_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Key is not integer' ) - - CASE (ERRFLAG_UNABLE_TO_READ_KEY) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error calling check key' ) - CASE (ERRFLAG_READ_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error reading key' ) - CASE (ERRFLAG_STRING_IS_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in checking if string is an integer' ) - CASE (ERRFLAG_STRING_TO_INTEGER) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'Error in converting string to integer' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION READ_GRIB2_SECTION5_TYPE_FROM_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -END MODULE GRIB2_SECTION5_FACTORY_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/encoders/grib2-encoder/section-encoders/grib2_encoder_mod.F90 b/src/multiom/encoders/grib2-encoder/section-encoders/grib2_encoder_mod.F90 deleted file mode 100644 index bd1fa6276..000000000 --- a/src/multiom/encoders/grib2-encoder/section-encoders/grib2_encoder_mod.F90 +++ /dev/null @@ -1,2521 +0,0 @@ -!> -!> @file grib2_encoder_mod.F90 -!> -!> @brief Module for managing GRIB2 Encoder operations. -!> -!> The `GRIB2_ENCODER_MOD` module contains procedures to initialize, allocate, -!> preset, run, and clean up the resources associated with GRIB2 Encoder objects. -!> This module provides thread-safe operations and includes extensive use of debugging, -!> logging, and tracing capabilities, making it robust for production and testing. -!> -!> The key operations covered by this module include: -!> - Initialization of GRIB2 Encoder objects. -!> - Allocation of resources. -!> - Presetting internal parameters. -!> - Managing runtime operations based on input parameters. -!> - Cleaning up and deallocating resources after use. -!> -!> @section interface -!> -!> The module exports the following procedures: -!> - @see GRIB2_ENCODER_INIT -!> - @see GRIB2_ENCODER_ALLOCATE -!> - @see GRIB2_ENCODER_PRESET -!> - @see GRIB2_ENCODER_RUNTIME -!> - @see GRIB2_ENCODER_TO_BE_ENCODED -!> - @see GRIB2_ENCODER_FREE -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @author Mirco Valentini -!> @date August, 2024 -!> - -! Include preprocessor utils -#include "output_manager_preprocessor_utils.h" -#include "output_manager_preprocessor_trace_utils.h" -#include "output_manager_preprocessor_logging_utils.h" -#include "output_manager_preprocessor_errhdl_utils.h" - - -#define PP_FILE_NAME 'grib2_encoder_mod.F90' -#define PP_SECTION_TYPE 'MODULE' -#define PP_SECTION_NAME 'GRIB2_ENCODER_MOD' -MODULE GRIB2_ENCODER_MOD - - !> Symbols imported from other modules within the project. - USE :: GRIB_SECTION_BASE_MOD, ONLY: GRIB_SECTION_BASE_A - -IMPLICIT NONE - -!> -!> Default symbols visibility -PRIVATE - -!> -!> @brief Type definition for GRIB2 Encoder handler. -!> -!> The `GRIB2_ENCODER_T` type extends the base class `GRIB_SECTION_BASE_A` and -!> provides concrete implementations of initialization, allocation, preset, runtime, -!> encoding checks, and cleanup operations for GRIB2 Encoder objects. -!> -!> This type ensures that the required resources are properly managed through thread-safe, -!> non-overridable methods, providing robustness in both multi-threaded and single-threaded -!> environments. -!> -TYPE, EXTENDS(GRIB_SECTION_BASE_A) :: GRIB2_ENCODER_T - - !> Default visibility of the class members - PRIVATE - - !> - !> @brief Pointer to the indicator section of the GRIB2 message. - !> - !> This points to the section that contains general metadata about the GRIB2 message, - !> including message length, GRIB version, and discipline. - CLASS(GRIB_SECTION_BASE_A), POINTER :: INDICATOR_SECTION_ => NULL() - - !> - !> @brief Pointer to the identification section of the GRIB2 message. - !> - !> This points to the section containing information about the originating center, - !> subcenter, date, time, and type of forecast. - CLASS(GRIB_SECTION_BASE_A), POINTER :: IDENTIFICATION_SECTION_ => NULL() - - !> - !> @brief Pointer to the local use section of the GRIB2 message. - !> - !> This points to the optional local use section where specific centers - !> can add custom data, if applicable. - CLASS(GRIB_SECTION_BASE_A), POINTER :: LOCAL_USE_SECTION_ => NULL() - - !> - !> @brief Pointer to the grid definition section of the GRIB2 message. - !> - !> This points to the section that defines the spatial grid used for - !> the data representation, including grid dimensions and resolution. - CLASS(GRIB_SECTION_BASE_A), POINTER :: GRID_DEFINITION_SECTION_ => NULL() - - !> - !> @brief Pointer to the product definition section of the GRIB2 message. - !> - !> This points to the section that defines the parameter being represented, - !> such as temperature or pressure, and its time range. - CLASS(GRIB_SECTION_BASE_A), POINTER :: PRODUCT_DEFINITION_SECTION_ => NULL() - - !> - !> @brief Pointer to the data representation section of the GRIB2 message. - !> - !> This points to the section that defines how the data values are packed - !> or scaled in the GRIB2 message, including bit-widths and precision. - CLASS(GRIB_SECTION_BASE_A), POINTER :: DATA_REPRESENTATION_SECTION_ => NULL() - - !> - !> @brief Pointer to the bitmap section of the GRIB2 message. - !> - !> This points to the section that marks grid points as either missing - !> or present, depending on the presence of the bitmap section. - CLASS(GRIB_SECTION_BASE_A), POINTER :: BITMAP_SECTION_ => NULL() - -CONTAINS - - !> - !> @brief Initializes the GRIB2 Encoder object. - !> - !> This procedure sets up the necessary parameters and prepares the - !> object for use. - !> The procedure starts from a yaml configuration file to construct the - !> GRIB2 encoder. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: INIT => GRIB2_ENCODER_INIT_CFG - - !> - !> @brief Allocates resources for the GRIB2 Encoder object. - !> - !> This procedure allocates memory and other necessary resources for - !> the object based on provided parameters. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: ALLOCATE => GRIB2_ENCODER_ALLOCATE - - !> - !> @brief Presets the parameters of the GRIB2 Encoder object. - !> - !> This procedure configures the internal parameters of the object - !> before runtime execution. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRESET => GRIB2_ENCODER_PRESET - - !> - !> @brief Manages the runtime execution of GRIB2 Encoder operations. - !> - !> This procedure handles operations and computations during runtime, - !> making use of time and metadata information. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: RUNTIME => GRIB2_ENCODER_RUNTIME - - !> - !> @brief Frees resources allocated for the GRIB2 Encoder object. - !> - !> This procedure deallocates resources and performs cleanup after - !> the object has been used. - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: FREE => GRIB2_ENCODER_FREE - - !> - !> @brief Print informations related to the section - !> - !> This procedure print informatin about the section and eventually call - !> the print method of the nested sub-sections - !> - PROCEDURE, PUBLIC, PASS, NON_OVERRIDABLE :: PRINT => GRIB2_ENCODER_PRINT - - - !> - !> @brief Builds the indicator section of the GRIB2 message. - !> - !> This procedure constructs the indicator section, which provides general - !> metadata about the GRIB2 message, including length and version. - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: BUILD_INDICATOR_SECTION => GRIB2_ENCODER_BUILD_INDICATOR_SECTION - - !> - !> @brief Builds the identification section of the GRIB2 message. - !> - !> This procedure assembles the identification section, containing details - !> about the originating center, subcenter, and date/time of data generation. - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: BUILD_IDENTIFICATION_SECTION => GRIB2_ENCODER_BUILD_IDENTIFICATION_SECTION - - !> - !> @brief Builds the local use section of the GRIB2 message. - !> - !> This procedure constructs the optional local use section, allowing for - !> custom data to be added by specific centers or users. - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: BUILD_LOCAL_USE_SECTION => GRIB2_ENCODER_BUILD_LOCAL_USE_SECTION - - !> - !> @brief Builds the grid definition section of the GRIB2 message. - !> - !> This procedure assembles the grid definition section, specifying the - !> grid system and resolution used in the data. - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: BUILD_GRID_DEFINITION_SECTION => GRIB2_ENCODER_BUILD_GRID_DEFINITION_SECTION - - !> - !> @brief Builds the product definition section of the GRIB2 message. - !> - !> This procedure constructs the product definition section, which - !> describes the product being represented, such as the variable and time interval. - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: BUILD_PRODUCT_DEFINITION_SECTION => GRIB2_ENCODER_BUILD_PRODUCT_DEFINITION_SECTION - - !> - !> @brief Builds the data representation section of the GRIB2 message. - !> - !> This procedure assembles the data representation section, defining - !> the packing and scaling details for the stored data values. - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: BUILD_DATA_REPRESENTATION_SECTION => GRIB2_ENCODER_BUILD_DATA_REPRESENTATION_SECTION -#if 0 - - !> - !> @brief Builds the bitmap section of the GRIB2 message. - !> - !> This procedure constructs the bitmap section, used to indicate missing - !> data points in the grid, if applicable. - !> - PROCEDURE, PRIVATE, PASS, NON_OVERRIDABLE :: BUILD_BITMAP_SECTION => GRIB2_ENCODER_BUILD_BITMAP_SECTION -#endif -END TYPE - - -!> -!> Public symbols (dataTypes) -PUBLIC :: GRIB2_ENCODER_T - -CONTAINS - -!> -!> @brief Initializes GRIB2 Encoder for a given object using the provided parameters. -!> -!> This function initializes a GRIB2 Encoder object (`THIS`) using the provided model parameters (`PARAMS`) -!> and configuration data (`CFG`). The process can be run in verbose mode if specified. The function -!> is thread-safe and returns an error code indicating the success or failure of the operation. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 Encoder object to be initialized. -!> @param [in] PARAMS Model parameters used during initialization. -!> @param [in] CFG YAML configuration data for initialization. -!> @param [inout] HOOKS A structure of type `HOOKS_T` that contains hooks for initialization. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section Dependencies of this function: -!> -!> @subsection local dependencies -!> -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] GRIB_ENCODER_OPTIONS_MOD::GRIB_ENCODER_OPTIONS_T -!> - @dependency [TYPE] YAML_CORE_UTILS_MOD::YAML_CONFIGURATION_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_ENCODER_INIT -!> @see GRIB2_ENCODER_ALLOCATE -!> @see GRIB2_ENCODER_PRESET -!> @see GRIB2_ENCODER_RUNTIME -!> @see GRIB2_ENCODER_TO_BE_ENCODED -!> @see GRIB2_ENCODER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_INIT_CFG' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_INIT_CFG( THIS, & -& CFG, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: CFG - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_BUILD_INDICATOR_SECTION = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_BUILD_IDENTIFICATION_SECTION = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_BUILD_LOCAL_USE_SECTION = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_BUILD_GRID_DEFINITION_SECTION = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_BUILD_PRODUCT_DEFINITION_SECTION = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_BUILD_DATA_REPRESENTATION_SECTION = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_BUILD_BITMAP_SECTION = 7_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Initialize the GRIB2 encoder object - THIS%TYPE_ = 'ENCODER' - THIS%SUBTYPE_ = 'GRIB2' - THIS%KIND_ = '000' - - !> Build the indicator section - PP_TRYCALL(ERRFLAG_UNABLE_TO_BUILD_INDICATOR_SECTION) & -& THIS%BUILD_INDICATOR_SECTION( CFG, OPT, HOOKS ) - - !> Build the identification section - PP_TRYCALL(ERRFLAG_UNABLE_TO_BUILD_IDENTIFICATION_SECTION) & -& THIS%BUILD_IDENTIFICATION_SECTION( CFG, OPT, HOOKS ) - - !> Build the local use section - PP_TRYCALL(ERRFLAG_UNABLE_TO_BUILD_LOCAL_USE_SECTION) & -& THIS%BUILD_LOCAL_USE_SECTION( CFG, OPT, HOOKS ) - - !> Build the grid definition section - PP_TRYCALL(ERRFLAG_UNABLE_TO_BUILD_GRID_DEFINITION_SECTION) & -& THIS%BUILD_GRID_DEFINITION_SECTION( CFG, OPT, HOOKS ) - - !> Build the product definition section - PP_TRYCALL(ERRFLAG_UNABLE_TO_BUILD_PRODUCT_DEFINITION_SECTION) & -& THIS%BUILD_PRODUCT_DEFINITION_SECTION( CFG, OPT, HOOKS ) - - !> Build the data representation section - PP_TRYCALL(ERRFLAG_UNABLE_TO_BUILD_DATA_REPRESENTATION_SECTION) & -& THIS%BUILD_DATA_REPRESENTATION_SECTION( CFG, OPT, HOOKS ) - -#if 0 - !> Build the bitmap section - PP_TRYCALL(ERRFLAG_UNABLE_TO_BUILD_BITMAP_SECTION) & -& THIS%BUILD_BITMAP_SECTION( CFG, OPT, HOOKS ) -#endif - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_BUILD_INDICATOR_SECTION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to build indicator section' ) - CASE(ERRFLAG_UNABLE_TO_BUILD_IDENTIFICATION_SECTION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to build identification section' ) - CASE(ERRFLAG_UNABLE_TO_BUILD_LOCAL_USE_SECTION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to build local use section' ) - CASE(ERRFLAG_UNABLE_TO_BUILD_GRID_DEFINITION_SECTION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to build grid definition section' ) - CASE(ERRFLAG_UNABLE_TO_BUILD_PRODUCT_DEFINITION_SECTION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to build product definition section' ) - CASE(ERRFLAG_UNABLE_TO_BUILD_DATA_REPRESENTATION_SECTION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to build data representation section' ) - CASE(ERRFLAG_UNABLE_TO_BUILD_BITMAP_SECTION) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to build bitmap section' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_INIT_CFG -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Build the indicator section of a GRIB2 message. -!> -!> This function constructs the indicator section (Section 0) of a GRIB2 message. -!> It utilizes the provided YAML configuration, encoder options, and hooks to create -!> and populate the indicator section, which is added to the GRIB2 encoder object. -!> -!> @pre The GRIB2 encoder object (`THIS`) must be initialized. The YAML configuration (`ENCODER_CFG`) -!> should contain the necessary keys required for building the indicator section. -!> -!> @param [inout] THIS The GRIB2 encoder object being populated with sections. -!> @param [in] OPT The GRIB encoder options that affect the creation of this section. -!> @param [in] ENCODER_CFG The YAML configuration object containing the necessary keys for this section. -!> @param [inout] HOOKS A structure providing hooks for external dependencies or callback functions. -!> -!> @return Integer error code (`RET`) indicating success or failure. -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies Dependencies of this function: -!> - @dependency [PROCEDURE] YAML_CONFIGURATION_HAS_KEY -!> - @dependency [PROCEDURE] YAML_GET_SUBCONFIGURATION -!> - @dependency [PROCEDURE] YAML_DELETE_CONFIGURATION -!> - @dependency [PROCEDURE] READ_GRIB2_SECTION0_TYPE -!> - @dependency [PROCEDURE] MAKE_GRIB2_SECTION0 -!> -!> @section special dependencies: -!> - @dependency [*] PP_DEBUG_USE_VARS -!> - @dependency [*] PP_LOG_USE_VARS -!> - @dependency [*] PP_TRACE_USE_VARS -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_BUILD_INDICATOR_SECTION' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_BUILD_INDICATOR_SECTION( THIS, & -& ENCODER_CFG, ENCODER_OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION0_FACTORY_MOD, ONLY: MAKE_GRIB2_SECTION0 - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: ENCODER_OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: ENCODER_CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: CFG_HAS_INDICATOR_SECTION - TYPE(YAML_CONFIGURATION_T) :: INDICATOR_SECTION_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: INDICATOR_SECTION_NAME = 'indicator-section' - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_SEC0 = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SECTION_DEALLOCATION_ERROR = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC0_ALREADY_ASSOCIATED = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SEC0_TYPE = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC0 = 7_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%INDICATOR_SECTION_), ERRFLAG_SEC0_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the indicator-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( ENCODER_CFG, INDICATOR_SECTION_NAME, CFG_HAS_INDICATOR_SECTION, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. CFG_HAS_INDICATOR_SECTION, ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC0 ) - - !> Read the subconfiguration for the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( ENCODER_CFG, INDICATOR_SECTION_NAME, INDICATOR_SECTION_CFG, HOOKS ) - - !> Make the indicator-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_SEC0) MAKE_GRIB2_SECTION0( THIS%INDICATOR_SECTION_, INDICATOR_SECTION_CFG, ENCODER_OPT, HOOKS ) - - !> Deallocate the indicator-section configuration - PP_TRYCALL( ERRFLAG_SECTION_DEALLOCATION_ERROR ) YAML_DELETE_CONFIGURATION( INDICATOR_SECTION_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_READ_CFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for indicator-section' ) - CASE(ERRFLAG_UNABLE_TO_READ_SUBCFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfigurations for indicator-section' ) - CASE(ERRFLAG_UNABLE_TO_MAKE_SEC0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make indicator-section' ) - CASE(ERRFLAG_SECTION_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating indicator-section configuration' ) - CASE (ERRFLAG_SEC0_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'indicator-section already associated' ) - CASE (ERRFLAG_UNABLE_TO_READ_SEC0_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read indicator-section' ) - CASE (ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC0) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for indicator-section' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_BUILD_INDICATOR_SECTION -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - -!> -!> @brief Build the identification section of a GRIB2 message. -!> -!> This function constructs the identification section (Section 1) of a GRIB2 message. -!> It utilizes the provided YAML configuration, encoder options, and hooks to create -!> and populate the identification section, which is added to the GRIB2 encoder object. -!> -!> @pre The GRIB2 encoder object (`THIS`) must be initialized. The YAML configuration (`ENCODER_CFG`) -!> should contain the necessary keys required for building the identification section. -!> -!> @param [inout] THIS The GRIB2 encoder object being populated with sections. -!> @param [in] OPT The GRIB encoder options that affect the creation of this section. -!> @param [in] ENCODER_CFG The YAML configuration object containing the necessary keys for this section. -!> @param [inout] HOOKS A structure providing hooks for external dependencies or callback functions. -!> -!> @return Integer error code (`RET`) indicating success or failure. -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies Dependencies of this function: -!> - @dependency [PROCEDURE] YAML_CONFIGURATION_HAS_KEY -!> - @dependency [PROCEDURE] YAML_GET_SUBCONFIGURATION -!> - @dependency [PROCEDURE] YAML_DELETE_CONFIGURATION -!> - @dependency [PROCEDURE] READ_GRIB2_SECTION1_TYPE -!> - @dependency [PROCEDURE] MAKE_GRIB2_SECTION1 -!> -!> @section special dependencies: -!> - @dependency [*] PP_DEBUG_USE_VARS -!> - @dependency [*] PP_LOG_USE_VARS -!> - @dependency [*] PP_TRACE_USE_VARS -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_BUILD_IDENTIFICATION_SECTION' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_BUILD_IDENTIFICATION_SECTION( THIS, & -& ENCODER_CFG, ENCODER_OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION1_FACTORY_MOD, ONLY: MAKE_GRIB2_SECTION1 - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: ENCODER_OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: ENCODER_CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: CFG_HAS_IDENTIFICATION_SECTION - TYPE(YAML_CONFIGURATION_T) :: IDENTIFICATION_SECTION_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: IDENTIFICATION_SECTION_NAME = 'identification-section' - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_SEC1 = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SECTION_DEALLOCATION_ERROR = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC1_ASSOCIATED = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SEC1_TYPE = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC1 = 7_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%IDENTIFICATION_SECTION_), ERRFLAG_SEC1_ASSOCIATED ) - - !> Check if a configuration for the identification-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( ENCODER_CFG, IDENTIFICATION_SECTION_NAME, CFG_HAS_IDENTIFICATION_SECTION, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. CFG_HAS_IDENTIFICATION_SECTION, ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC1 ) - - !> Read the subconfiguration for the identification-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( ENCODER_CFG, IDENTIFICATION_SECTION_NAME, IDENTIFICATION_SECTION_CFG, HOOKS ) - - !> Make the identification-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_SEC1) MAKE_GRIB2_SECTION1( THIS%IDENTIFICATION_SECTION_, IDENTIFICATION_SECTION_CFG, ENCODER_OPT, HOOKS ) - - !> Deallocate the identification-section configuration - PP_TRYCALL( ERRFLAG_SECTION_DEALLOCATION_ERROR ) YAML_DELETE_CONFIGURATION( IDENTIFICATION_SECTION_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_READ_CFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for identification-section' ) - CASE(ERRFLAG_UNABLE_TO_READ_SUBCFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfigurations for identification-section' ) - CASE(ERRFLAG_UNABLE_TO_MAKE_SEC1) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make identification-section' ) - CASE(ERRFLAG_SECTION_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating identification-section configuration' ) - CASE (ERRFLAG_SEC1_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'identification-section already associated' ) - CASE (ERRFLAG_UNABLE_TO_READ_SEC1_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read identification-section' ) - CASE (ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC1) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for identification-section' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_BUILD_IDENTIFICATION_SECTION -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Build the local use section of a GRIB2 message. -!> -!> This function constructs the local use section (Section 2) of a GRIB2 message. -!> It utilizes the provided YAML configuration, encoder options, and hooks to create -!> and populate the local use section, which is added to the GRIB2 encoder object. -!> -!> @pre The GRIB2 encoder object (`THIS`) must be initialized. The YAML configuration (`ENCODER_CFG`) -!> should contain the necessary keys required for building the local use section. -!> -!> @param [inout] THIS The GRIB2 encoder object being populated with sections. -!> @param [in] OPT The GRIB encoder options that affect the creation of this section. -!> @param [in] ENCODER_CFG The YAML configuration object containing the necessary keys for this section. -!> @param [inout] HOOKS A structure providing hooks for external dependencies or callback functions. -!> -!> @return Integer error code (`RET`) indicating success or failure. -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies Dependencies of this function: -!> - @dependency [PROCEDURE] YAML_CONFIGURATION_HAS_KEY -!> - @dependency [PROCEDURE] YAML_GET_SUBCONFIGURATION -!> - @dependency [PROCEDURE] YAML_DELETE_CONFIGURATION -!> - @dependency [PROCEDURE] READ_GRIB2_SECTION2_TYPE -!> - @dependency [PROCEDURE] MAKE_GRIB2_SECTION2 -!> -!> @section special dependencies: -!> - @dependency [*] PP_DEBUG_USE_VARS -!> - @dependency [*] PP_LOG_USE_VARS -!> - @dependency [*] PP_TRACE_USE_VARS -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_BUILD_LOCAL_USE_SECTION' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_BUILD_LOCAL_USE_SECTION( THIS, & -& ENCODER_CFG, ENCODER_OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION2_FACTORY_MOD, ONLY: MAKE_GRIB2_SECTION2 - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: ENCODER_OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: ENCODER_CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: CFG_HAS_LOCAL_USE_SECTION - TYPE(YAML_CONFIGURATION_T) :: LOCAL_USE_SECTION_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: LOCAL_USE_SECTION_NAME = 'local-use-section' - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_SEC2 = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SECTION_DEALLOCATION_ERROR = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC2_ALREADY_ASSOCIATED = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SEC2_TYPE = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC2 = 7_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%LOCAL_USE_SECTION_), ERRFLAG_SEC2_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the local-use-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( ENCODER_CFG, LOCAL_USE_SECTION_NAME, CFG_HAS_LOCAL_USE_SECTION, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. CFG_HAS_LOCAL_USE_SECTION, ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC2 ) - - !> Read the subconfiguration for the local-use-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( ENCODER_CFG, LOCAL_USE_SECTION_NAME, LOCAL_USE_SECTION_CFG, HOOKS ) - - !> Make the local-use-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_SEC2) MAKE_GRIB2_SECTION2( THIS%LOCAL_USE_SECTION_, LOCAL_USE_SECTION_CFG, ENCODER_OPT, HOOKS ) - - !> Deallocate the local-use-section configuration - PP_TRYCALL( ERRFLAG_SECTION_DEALLOCATION_ERROR ) YAML_DELETE_CONFIGURATION( LOCAL_USE_SECTION_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_READ_CFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for local-use-section' ) - CASE(ERRFLAG_UNABLE_TO_READ_SUBCFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfigurations for local-use-section' ) - CASE(ERRFLAG_UNABLE_TO_MAKE_SEC2) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make local-use-section' ) - CASE(ERRFLAG_SECTION_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating local-use-section configuration' ) - CASE (ERRFLAG_SEC2_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'local-use-section already associated' ) - CASE (ERRFLAG_UNABLE_TO_READ_SEC2_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read local-use-section' ) - CASE (ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC2) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for local-use-section' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_BUILD_LOCAL_USE_SECTION -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Build the grid definition section of a GRIB2 message. -!> -!> This function constructs the grid definition section (Section 3) of a GRIB2 message. -!> It uses the provided YAML configuration, encoder options, and hooks to create and -!> populate the grid definition section, which is added to the GRIB2 encoder object. -!> -!> @pre The GRIB2 encoder object (`THIS`) must be initialized. The YAML configuration (`ENCODER_CFG`) -!> should contain the necessary keys required for building the grid definition section. -!> -!> @param [inout] THIS The GRIB2 encoder object being populated with sections. -!> @param [in] OPT The GRIB encoder options that affect the creation of this section. -!> @param [in] ENCODER_CFG The YAML configuration object containing the necessary keys for this section. -!> @param [inout] HOOKS A structure providing hooks for external dependencies or callback functions. -!> -!> @return Integer error code (`RET`) indicating success or failure. -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies Dependencies of this function: -!> - @dependency [PROCEDURE] YAML_CONFIGURATION_HAS_KEY -!> - @dependency [PROCEDURE] YAML_GET_SUBCONFIGURATION -!> - @dependency [PROCEDURE] YAML_DELETE_CONFIGURATION -!> - @dependency [PROCEDURE] READ_GRIB2_SECTION3_TYPE -!> - @dependency [PROCEDURE] MAKE_GRIB2_SECTION3 -!> -!> @section special dependencies: -!> - @dependency [*] PP_DEBUG_USE_VARS -!> - @dependency [*] PP_LOG_USE_VARS -!> - @dependency [*] PP_TRACE_USE_VARS -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_BUILD_GRID_DEFINITION_SECTION' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_BUILD_GRID_DEFINITION_SECTION( THIS, & -& ENCODER_CFG, ENCODER_OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION3_FACTORY_MOD, ONLY: MAKE_GRIB2_SECTION3 - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: ENCODER_OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: ENCODER_CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: CFG_HAS_GRID_DEFINITION_SECTION - TYPE(YAML_CONFIGURATION_T) :: GRID_DEFINITION_SECTION_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: GRID_DEFINITION_SECTION_NAME = 'grid-definition-section' - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_SEC3 = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SECTION_DEALLOCATION_ERROR = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC3_ALREADY_ASSOCIATED = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SEC3_TYPE = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC3 = 7_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%GRID_DEFINITION_SECTION_), ERRFLAG_SEC3_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the grid-definition-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( ENCODER_CFG, GRID_DEFINITION_SECTION_NAME, CFG_HAS_GRID_DEFINITION_SECTION, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. CFG_HAS_GRID_DEFINITION_SECTION, ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC3 ) - - !> Read the subconfiguration for the grid-definition-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( ENCODER_CFG, GRID_DEFINITION_SECTION_NAME, GRID_DEFINITION_SECTION_CFG, HOOKS ) - - !> Make the grid-definition-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_SEC3) MAKE_GRIB2_SECTION3( THIS%GRID_DEFINITION_SECTION_, GRID_DEFINITION_SECTION_CFG, ENCODER_OPT, HOOKS ) - - !> Deallocate the grid-definition-section configuration - PP_TRYCALL( ERRFLAG_SECTION_DEALLOCATION_ERROR ) YAML_DELETE_CONFIGURATION( GRID_DEFINITION_SECTION_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_READ_CFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for grid-definition-section' ) - CASE(ERRFLAG_UNABLE_TO_READ_SUBCFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfigurations for grid-definition-section' ) - CASE(ERRFLAG_UNABLE_TO_MAKE_SEC3) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make grid-definition-section' ) - CASE(ERRFLAG_SECTION_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating grid-definition-section configuration' ) - CASE (ERRFLAG_SEC3_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'grid-definition-section already associated' ) - CASE (ERRFLAG_UNABLE_TO_READ_SEC3_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read grid-definition-section' ) - CASE (ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC3) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for grid-definition-section' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_BUILD_GRID_DEFINITION_SECTION -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Build the product definition section of a GRIB2 message. -!> -!> This function constructs the product definition section (Section 4) of a GRIB2 message. -!> It utilizes the provided YAML configuration, encoder options, and hooks to create the structure -!> and content of the product definition section and adds it to the GRIB2 encoder object. -!> -!> @pre The GRIB2 encoder object (`THIS`) should be initialized and ready for adding sections. -!> The YAML configuration (`ENCODER_CFG`) must contain the necessary keys for building the product -!> definition section. -!> -!> @param [inout] THIS The GRIB2 encoder object being populated with sections. -!> @param [in] OPT The GRIB encoder options that affect the creation of this section. -!> @param [in] ENCODER_CFG The YAML configuration object containing the necessary keys for this section. -!> @param [inout] HOOKS A structure providing hooks for external dependencies or callback functions. -!> -!> @return Integer error code (`RET`) indicating success or failure. -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies Dependencies of this function: -!> - @dependency [PROCEDURE] YAML_CONFIGURATION_HAS_KEY -!> - @dependency [PROCEDURE] YAML_GET_SUBCONFIGURATION -!> - @dependency [PROCEDURE] YAML_DELETE_CONFIGURATION -!> - @dependency [PROCEDURE] READ_GRIB2_SECTION4_TYPE -!> - @dependency [PROCEDURE] MAKE_GRIB2_SECTION4 -!> -!> @section special dependencies: -!> - @dependency [*] PP_DEBUG_USE_VARS -!> - @dependency [*] PP_LOG_USE_VARS -!> - @dependency [*] PP_TRACE_USE_VARS -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_BUILD_PRODUCT_DEFINITION_SECTION' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_BUILD_PRODUCT_DEFINITION_SECTION( THIS, & -& ENCODER_CFG, ENCODER_OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION4_FACTORY_MOD, ONLY: MAKE_GRIB2_SECTION4 - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: ENCODER_OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: ENCODER_CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: CFG_HAS_PRODUCT_DEFINITION_SECTION - TYPE(YAML_CONFIGURATION_T) :: PRODUCT_DEFINITION_SECTION_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: PRODUCT_DEFINITION_SECTION_NAME = 'product-definition-section' - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_SEC4 = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SECTION_DEALLOCATION_ERROR = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC4_ALREADY_ASSOCIATED = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SEC4_TYPE = 6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC4 = 7_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%PRODUCT_DEFINITION_SECTION_), ERRFLAG_SEC4_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the product-definition-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( ENCODER_CFG, PRODUCT_DEFINITION_SECTION_NAME, CFG_HAS_PRODUCT_DEFINITION_SECTION, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. CFG_HAS_PRODUCT_DEFINITION_SECTION, ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC4 ) - - !> Read the subconfiguration for the product-definition-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( ENCODER_CFG, PRODUCT_DEFINITION_SECTION_NAME, PRODUCT_DEFINITION_SECTION_CFG, HOOKS ) - - !> Make the product-definition-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_SEC4) MAKE_GRIB2_SECTION4( THIS%PRODUCT_DEFINITION_SECTION_, PRODUCT_DEFINITION_SECTION_CFG, ENCODER_OPT, HOOKS ) - - !> Deallocate the product-definition-section configuration - PP_TRYCALL( ERRFLAG_SECTION_DEALLOCATION_ERROR ) YAML_DELETE_CONFIGURATION( PRODUCT_DEFINITION_SECTION_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_READ_CFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for product-definition-section' ) - CASE(ERRFLAG_UNABLE_TO_READ_SUBCFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfigurations for product-definition-section' ) - CASE(ERRFLAG_UNABLE_TO_MAKE_SEC4) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make product-definition-section' ) - CASE(ERRFLAG_SECTION_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating product-definition-section configuration' ) - CASE (ERRFLAG_SEC4_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'product-definition-section already associated' ) - CASE (ERRFLAG_UNABLE_TO_READ_SEC4_TYPE) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read product-definition-section' ) - CASE (ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC4) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for product-definition-section' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_BUILD_PRODUCT_DEFINITION_SECTION -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Build the data representation section of a GRIB2 message. -!> -!> This function constructs the data representation section (Section 5) of a GRIB2 message. -!> It uses the provided YAML configuration, encoder options, and hooks to determine the structure -!> and content of the data representation section, and adds it to the GRIB2 encoder object. -!> -!> @pre The GRIB2 encoder object (`THIS`) should be initialized and ready for adding sections. -!> The YAML configuration (`ENCODER_CFG`) must contain the necessary keys for building the data -!> representation section. -!> -!> @param [inout] THIS The GRIB2 encoder object being populated with sections. -!> @param [in] OPT The GRIB encoder options influencing the creation of this section. -!> @param [in] ENCODER_CFG The YAML configuration object with the relevant keys for this section. -!> @param [inout] HOOKS A structure providing hooks for external dependencies or callback functions. -!> -!> @return Integer error code (`RET`) indicating success or failure. -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies Dependencies of this function: -!> - @dependency [PROCEDURE] YAML_CONFIGURATION_HAS_KEY -!> - @dependency [PROCEDURE] YAML_GET_SUBCONFIGURATION -!> - @dependency [PROCEDURE] YAML_DELETE_CONFIGURATION -!> - @dependency [PROCEDURE] READ_GRIB2_SECTION5_TYPE -!> - @dependency [PROCEDURE] MAKE_GRIB2_SECTION5 -!> -!> @section special dependencies: -!> - @dependency [*] PP_DEBUG_USE_VARS -!> - @dependency [*] PP_LOG_USE_VARS -!> - @dependency [*] PP_TRACE_USE_VARS -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_BUILD_DATA_REPRESENTATION_SECTION' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_BUILD_DATA_REPRESENTATION_SECTION( THIS, & -& ENCODER_CFG, ENCODER_OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_T - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_CONFIGURATION_HAS_KEY - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_GET_SUBCONFIGURATION - USE :: YAML_CORE_UTILS_MOD, ONLY: YAML_DELETE_CONFIGURATION - USE :: GRIB2_SECTION5_FACTORY_MOD, ONLY: MAKE_GRIB2_SECTION5 - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: ENCODER_OPT - TYPE(YAML_CONFIGURATION_T), INTENT(IN) :: ENCODER_CFG - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local variables - LOGICAL :: CFG_HAS_DATA_REPRESENTATION_SECTION - TYPE(YAML_CONFIGURATION_T) :: DATA_REPRESENTATION_SECTION_CFG - - !> Local parameters - CHARACTER(LEN=*), PARAMETER :: DATA_REPRESENTATION_SECTION_NAME = 'data-representation-section' - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG = 1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_SUBCFG = 2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_MAKE_SEC5 = 3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SECTION_DEALLOCATION_ERROR = 4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC5_ALREADY_ASSOCIATED = 5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC5 = 7_JPIB_K - - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - !> Error handling - PP_DEBUG_CRITICAL_COND_THROW( ASSOCIATED(THIS%DATA_REPRESENTATION_SECTION_), ERRFLAG_SEC5_ALREADY_ASSOCIATED ) - - !> Check if a configuration for the data-represntation-section is available - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( ENCODER_CFG, DATA_REPRESENTATION_SECTION_NAME, CFG_HAS_DATA_REPRESENTATION_SECTION, HOOKS ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. CFG_HAS_DATA_REPRESENTATION_SECTION, ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC5 ) - - !> Read the subconfiguration for the data-represntation-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_SUBCFG) YAML_GET_SUBCONFIGURATION( ENCODER_CFG, DATA_REPRESENTATION_SECTION_NAME, DATA_REPRESENTATION_SECTION_CFG, HOOKS ) - - !> Make the data-represntation-section - PP_TRYCALL(ERRFLAG_UNABLE_TO_MAKE_SEC5) MAKE_GRIB2_SECTION5( THIS%DATA_REPRESENTATION_SECTION_, DATA_REPRESENTATION_SECTION_CFG, ENCODER_OPT, HOOKS ) - - !> Deallocate the data-represntation-section configuration - PP_TRYCALL( ERRFLAG_SECTION_DEALLOCATION_ERROR ) YAML_DELETE_CONFIGURATION( DATA_REPRESENTATION_SECTION_CFG, HOOKS ) - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_UNABLE_TO_READ_CFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for data-represntation-section' ) - CASE(ERRFLAG_UNABLE_TO_READ_SUBCFG) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read subconfigurations for data-represntation-section' ) - CASE(ERRFLAG_UNABLE_TO_MAKE_SEC5) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to make data-represntation-section' ) - CASE(ERRFLAG_SECTION_DEALLOCATION_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error deallocating data-represntation-section configuration' ) - CASE (ERRFLAG_SEC5_ALREADY_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data-represntation-section already associated' ) - CASE (ERRFLAG_UNABLE_TO_READ_CFG_FOR_SEC5) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to read configuration for data-represntation-section' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_BUILD_DATA_REPRESENTATION_SECTION -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Allocates resources for GRIB2 Encoder using the provided parameters. -!> -!> This function allocates resources for a GRIB2 Encoder object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the allocation process. -!> -!> @section interface -!> -!> @param [in] THIS GRIB2 Encoder object for which resources are allocated. -!> @param [in] MSG All the mars keywords needed to describe the field `FORTRAN_MESSAGE_T`. -!> @param [in] PAR All information outside mars keywords needed to describe the field `PARAMETRIZATION_T`. -!> @param [in] OPT The encoder options structure of type `ENCODER_OPTIONS_T`. -!> @param [inout] METADATA Pointer to metadata used during allocation. -!> @param [in] VERBOSE Logical flag for verbose output during allocation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_ENCODER_ALLOCATE -!> @see GRIB2_ENCODER_INIT -!> @see GRIB2_ENCODER_PRESET -!> @see GRIB2_ENCODER_RUNTIME -!> @see GRIB2_ENCODER_TO_BE_ENCODED -!> @see GRIB2_ENCODER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_ALLOCATE' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_ALLOCATE( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC0_ALLOC=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: EERRFLAG_CALL_SEC1_ALLOC=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: EERRFLAG_CALL_SEC2_ALLOC=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC3_ALLOC=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC4_ALLOC=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC5_ALLOC=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC6_ALLOC=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC0_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC1_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC2_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC3_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC4_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC5_ASSOCIATED=13_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC6_ASSOCIATED=14_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=15_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED( METADATA ), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%INDICATOR_SECTION_), ERRFLAG_SEC0_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%IDENTIFICATION_SECTION_), ERRFLAG_SEC1_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LOCAL_USE_SECTION_), ERRFLAG_SEC2_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%GRID_DEFINITION_SECTION_), ERRFLAG_SEC3_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PRODUCT_DEFINITION_SECTION_), ERRFLAG_SEC4_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DATA_REPRESENTATION_SECTION_), ERRFLAG_SEC5_ASSOCIATED ) - - ! Add space in the log - PP_LOG_INFO( ' ' ) - PP_LOG_INFO( '------------------------------------------------------------------------------------' ) - - ! Allocate the sections - PP_TRYCALL(ERRFLAG_CALL_SEC0_ALLOC) THIS%INDICATOR_SECTION_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(EERRFLAG_CALL_SEC1_ALLOC) THIS%IDENTIFICATION_SECTION_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(EERRFLAG_CALL_SEC2_ALLOC) THIS%LOCAL_USE_SECTION_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC3_ALLOC) THIS%GRID_DEFINITION_SECTION_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC4_ALLOC) THIS%PRODUCT_DEFINITION_SECTION_%ALLOCATE ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC5_ALLOC) THIS%DATA_REPRESENTATION_SECTION_%ALLOCATE( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_CALL_SEC0_ALLOC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call indicator section allocation' ) - CASE(EERRFLAG_CALL_SEC1_ALLOC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call identification section allocation' ) - CASE(EERRFLAG_CALL_SEC2_ALLOC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call local use section allocation' ) - CASE(ERRFLAG_CALL_SEC3_ALLOC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call grid definition section allocation' ) - CASE(ERRFLAG_CALL_SEC4_ALLOC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call product definition section allocation' ) - CASE(ERRFLAG_CALL_SEC5_ALLOC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call data representation section allocation' ) - CASE(ERRFLAG_CALL_SEC6_ALLOC) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call bitmap section allocation' ) - CASE(ERRFLAG_SEC0_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'indicator section not associated' ) - CASE(ERRFLAG_SEC1_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'identification section not associated' ) - CASE(ERRFLAG_SEC2_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'local use section not associated' ) - CASE(ERRFLAG_SEC3_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'grid definition section not associated' ) - CASE(ERRFLAG_SEC4_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'product definition section not associated' ) - CASE(ERRFLAG_SEC5_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data representation section not associated' ) - CASE(ERRFLAG_SEC6_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'bitmap section not associated' ) - CASE(ERRFLAG_METADATA) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_ALLOCATE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Presets GRIB2 Encoder using the provided parameters and message data. -!> -!> This function presets a GRIB2 Encoder object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), and metadata (`METADATA`). The process can be run in verbose mode if specified. -!> The function is thread-safe and returns an error code indicating the success or failure of the preset operation. -!> -!> @section interface -!> -!> @param [in] THIS GRIB2 Encoder object to be preset. -!> @param [in] PARAMS Model parameters used during the preset process. -!> @param [in] MSG Message structure providing necessary information. -!> @param [inout] METADATA Pointer to metadata involved in the preset process. -!> @param [in] VERBOSE Logical flag for verbose output during the preset operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_ENCODER_PRESET -!> @see GRIB2_ENCODER_ALLOCATE -!> @see GRIB2_ENCODER_INIT -!> @see GRIB2_ENCODER_RUNTIME -!> @see GRIB2_ENCODER_TO_BE_ENCODED -!> @see GRIB2_ENCODER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_PRESET' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_PRESET( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC0_PRESET=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: EERRFLAG_CALL_SEC1_PRESET=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: EERRFLAG_CALL_SEC2_PRESET=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC3_PRESET=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC4_PRESET=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC5_PRESET=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC6_PRESET=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC0_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC1_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC2_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC3_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC4_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC5_ASSOCIATED=13_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC6_ASSOCIATED=14_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=15_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED( METADATA ), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%INDICATOR_SECTION_), ERRFLAG_SEC0_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%IDENTIFICATION_SECTION_), ERRFLAG_SEC1_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LOCAL_USE_SECTION_), ERRFLAG_SEC2_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%GRID_DEFINITION_SECTION_), ERRFLAG_SEC3_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PRODUCT_DEFINITION_SECTION_), ERRFLAG_SEC4_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DATA_REPRESENTATION_SECTION_), ERRFLAG_SEC5_ASSOCIATED ) - - - ! Add space in the log - PP_LOG_INFO( ' ' ) - PP_LOG_INFO( '------------------------------------------------------------------------------------' ) - - ! Allocate the sections - PP_TRYCALL(ERRFLAG_CALL_SEC0_PRESET) THIS%INDICATOR_SECTION_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(EERRFLAG_CALL_SEC1_PRESET) THIS%IDENTIFICATION_SECTION_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(EERRFLAG_CALL_SEC2_PRESET) THIS%LOCAL_USE_SECTION_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC3_PRESET) THIS%GRID_DEFINITION_SECTION_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC4_PRESET) THIS%PRODUCT_DEFINITION_SECTION_%PRESET ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC5_PRESET) THIS%DATA_REPRESENTATION_SECTION_%PRESET( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_CALL_SEC0_PRESET) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call indicator section preset' ) - CASE(EERRFLAG_CALL_SEC1_PRESET) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call identification section preset' ) - CASE(EERRFLAG_CALL_SEC2_PRESET) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call local use section preset' ) - CASE(ERRFLAG_CALL_SEC3_PRESET) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call grid definition section preset' ) - CASE(ERRFLAG_CALL_SEC4_PRESET) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call product definition section preset' ) - CASE(ERRFLAG_CALL_SEC5_PRESET) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call data representation section preset' ) - CASE(ERRFLAG_CALL_SEC6_PRESET) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call bitmap section preset' ) - CASE(ERRFLAG_SEC0_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'indicator section not associated' ) - CASE(ERRFLAG_SEC1_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'identification section not associated' ) - CASE(ERRFLAG_SEC2_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'local use section not associated' ) - CASE(ERRFLAG_SEC3_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'grid definition section not associated' ) - CASE(ERRFLAG_SEC4_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'product definition section not associated' ) - CASE(ERRFLAG_SEC5_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data representation section not associated' ) - CASE(ERRFLAG_SEC6_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'bitmap section not associated' ) - CASE(ERRFLAG_METADATA) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_PRESET -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Executes runtime processing for GRIB2 Encoder using provided parameters, message data, and time history. -!> -!> This function performs runtime operations for a GRIB2 Encoder object (`THIS`) using the provided model parameters (`PARAMS`), -!> message structure (`MSG`), current time (`CURR_TIME`), time history (`TIME_HISTORY`), and metadata (`METADATA`). -!> The process can be run in verbose mode if specified. The function is thread-safe and returns an error code indicating -!> the success or failure of the runtime operation. -!> -!> @section interface -!> -!> @param [in] THIS GRIB2 Encoder object for runtime execution. -!> @param [in] PARAMS Model parameters used during the runtime process. -!> @param [in] MSG Message structure providing necessary information. -!> @param [in] CURR_TIME Current time used in the runtime process. -!> @param [in] TIME_HISTORY Time history information for the runtime process. -!> @param [inout] METADATA Pointer to metadata involved in the runtime process. -!> @param [in] VERBOSE Logical flag for verbose output during the runtime operation. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection local dependencies -!> -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MODEL_PAR_T -!> - @dependency [TYPE] OM_DATA_TYPES_MOD::MESSAGE_T -!> - @dependency [TYPE] METADATA_BASE_MOD::METADATA_BASE_A -!> - @dependency [TYPE] OM_CORE_MOD::TIME_HISTORY_T -!> - @dependency [TYPE] OM_CORE_MOD::CURR_TIME_T -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_ENCODER_RUNTIME -!> @see GRIB2_ENCODER_ALLOCATE -!> @see GRIB2_ENCODER_INIT -!> @see GRIB2_ENCODER_PRESET -!> @see GRIB2_ENCODER_TO_BE_ENCODED -!> @see GRIB2_ENCODER_FREE -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_RUNTIME' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_RUNTIME( THIS, & -& MSG, GEO, PAR, OPT, METADATA, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: FORTRAN_MESSAGE_MOD, ONLY: FORTRAN_MESSAGE_T - USE :: REPRESENTATIONS_MOD, ONLY: REPRES_A - USE :: PARAMETRIZATION_MOD, ONLY: PARAMETRIZATION_T - USE :: METADATA_BASE_MOD, ONLY: METADATA_BASE_A - USE :: HOOKS_MOD, ONLY: HOOKS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(FORTRAN_MESSAGE_T), INTENT(IN) :: MSG - CLASS(REPRES_A), POINTER, INTENT(IN) :: GEO - TYPE(PARAMETRIZATION_T), INTENT(IN) :: PAR - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - CLASS(METADATA_BASE_A), POINTER, INTENT(INOUT) :: METADATA - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC0_RUNTIME=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: EERRFLAG_CALL_SEC1_RUNTIME=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: EERRFLAG_CALL_SEC2_RUNTIME=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC3_RUNTIME=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC4_RUNTIME=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC5_RUNTIME=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC6_RUNTIME=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC0_ASSOCIATED=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC1_ASSOCIATED=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC2_ASSOCIATED=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC3_ASSOCIATED=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC4_ASSOCIATED=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC5_ASSOCIATED=13_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC6_ASSOCIATED=14_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_METADATA=15_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - PP_METADATA_ENTER_PROCEDURE( METADATA, ERRFLAG_METADATA ) - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED( METADATA ), ERRFLAG_METADATA ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%INDICATOR_SECTION_), ERRFLAG_SEC0_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%IDENTIFICATION_SECTION_), ERRFLAG_SEC1_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LOCAL_USE_SECTION_), ERRFLAG_SEC2_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%GRID_DEFINITION_SECTION_), ERRFLAG_SEC3_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PRODUCT_DEFINITION_SECTION_), ERRFLAG_SEC4_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DATA_REPRESENTATION_SECTION_), ERRFLAG_SEC5_ASSOCIATED ) - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%BITMAP_SECTION_), ERRFLAG_SEC6_ASSOCIATED ) - - ! Add space in the log - PP_LOG_INFO( ' ' ) - PP_LOG_INFO( '------------------------------------------------------------------------------------' ) - - ! Allocate the sections - PP_TRYCALL(ERRFLAG_CALL_SEC0_RUNTIME) THIS%INDICATOR_SECTION_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(EERRFLAG_CALL_SEC1_RUNTIME) THIS%IDENTIFICATION_SECTION_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(EERRFLAG_CALL_SEC2_RUNTIME) THIS%LOCAL_USE_SECTION_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC3_RUNTIME) THIS%GRID_DEFINITION_SECTION_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC4_RUNTIME) THIS%PRODUCT_DEFINITION_SECTION_%RUNTIME ( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC5_RUNTIME) THIS%DATA_REPRESENTATION_SECTION_%RUNTIME( MSG, GEO, PAR, OPT, METADATA, HOOKS ) - ! PP_TRYCALL(ERRFLAG_CALL_SEC6_RUNTIME) THIS%BITMAP_SECTION_%RUNTIME ( MSG, PAR, TIME_HIST, CURR_TIME, OPT, METADATA, HOOKS ) - - ! Trace end of procedure (on success) - PP_METADATA_EXIT_PROCEDURE( METADATA, ERRFLAG_METADATA ) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_CALL_SEC0_RUNTIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call indicator section runtime' ) - CASE(EERRFLAG_CALL_SEC1_RUNTIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call identification section runtime' ) - CASE(EERRFLAG_CALL_SEC2_RUNTIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call local use section runtime' ) - CASE(ERRFLAG_CALL_SEC3_RUNTIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call grid definition section runtime' ) - CASE(ERRFLAG_CALL_SEC4_RUNTIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call product definition section runtime' ) - CASE(ERRFLAG_CALL_SEC5_RUNTIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call data representation section runtime' ) - CASE(ERRFLAG_CALL_SEC6_RUNTIME) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call bitmap section runtime' ) - CASE(ERRFLAG_SEC0_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'indicator section not associated' ) - CASE(ERRFLAG_SEC1_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'identification section not associated' ) - CASE(ERRFLAG_SEC2_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'local use section not associated' ) - CASE(ERRFLAG_SEC3_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'grid definition section not associated' ) - CASE(ERRFLAG_SEC4_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'product definition section not associated' ) - CASE(ERRFLAG_SEC5_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data representation section not associated' ) - CASE(ERRFLAG_SEC6_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'bitmap section not associated' ) - CASE(ERRFLAG_METADATA) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error using metadata' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_RUNTIME -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -!> -!> @brief Frees resources associated with GRIB2 Encoder object. -!> -!> This function deallocates and cleans up resources associated with the GRIB2 Encoder object (`THIS`). -!> The process can be run in verbose mode for additional output. The function is thread-safe and returns an -!> error code indicating the success or failure of the operation. -!> -!> @section interface -!> -!> @param [inout] THIS GRIB2 Encoder object to be deallocated and freed. -!> @param [in] VERBOSE Logical flag for verbose output during resource cleanup. -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section dependencies -!> -!> @subsection special dependencies -!> -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> - @dependency [*] PP_LOG_USE_VARS::* -!> - @dependency [*] PP_TRACE_USE_VARS::* -!> -!> @see GRIB2_ENCODER_INIT -!> @see GRIB2_ENCODER_ALLOCATE -!> @see GRIB2_ENCODER_PRESET -!> @see GRIB2_ENCODER_RUNTIME -!> @see GRIB2_ENCODER_TO_BE_ENCODED -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_FREE' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_FREE( THIS, OPT, HOOKS ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - USE :: GRIB2_SECTION0_FACTORY_MOD, ONLY: DESTROY_GRIB2_SECTION0 - USE :: GRIB2_SECTION1_FACTORY_MOD, ONLY: DESTROY_GRIB2_SECTION1 - USE :: GRIB2_SECTION2_FACTORY_MOD, ONLY: DESTROY_GRIB2_SECTION2 - USE :: GRIB2_SECTION3_FACTORY_MOD, ONLY: DESTROY_GRIB2_SECTION3 - USE :: GRIB2_SECTION4_FACTORY_MOD, ONLY: DESTROY_GRIB2_SECTION4 - USE :: GRIB2_SECTION5_FACTORY_MOD, ONLY: DESTROY_GRIB2_SECTION5 -#if 0 - USE :: GRIB2_SECTION6_FACTORY_MOD, ONLY: DESTROY_GRIB2_SECTION6 -#endif - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC0_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC1_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC2_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC3_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC4_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC5_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC6_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC0_DESTRUCTOR=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: EERRFLAG_CALL_SEC1_DESTRUCTOR=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: EERRFLAG_CALL_SEC2_DESTRUCTOR=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC3_DESTRUCTOR=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC4_DESTRUCTOR=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC5_DESTRUCTOR=13_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC6_DESTRUCTOR=14_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%INDICATOR_SECTION_), ERRFLAG_SEC0_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%IDENTIFICATION_SECTION_), ERRFLAG_SEC1_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LOCAL_USE_SECTION_), ERRFLAG_SEC2_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%GRID_DEFINITION_SECTION_), ERRFLAG_SEC3_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PRODUCT_DEFINITION_SECTION_), ERRFLAG_SEC4_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DATA_REPRESENTATION_SECTION_), ERRFLAG_SEC5_ASSOCIATED ) -#if 0 - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%BITMAP_SECTION_), ERRFLAG_SEC6_ASSOCIATED ) -#endif - - ! Allocate the sections - PP_TRYCALL(ERRFLAG_CALL_SEC0_DESTRUCTOR) DESTROY_GRIB2_SECTION0( THIS%INDICATOR_SECTION_, OPT, HOOKS ) - PP_TRYCALL(EERRFLAG_CALL_SEC1_DESTRUCTOR) DESTROY_GRIB2_SECTION1( THIS%IDENTIFICATION_SECTION_, OPT, HOOKS ) - PP_TRYCALL(EERRFLAG_CALL_SEC2_DESTRUCTOR) DESTROY_GRIB2_SECTION2( THIS%LOCAL_USE_SECTION_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC3_DESTRUCTOR) DESTROY_GRIB2_SECTION3( THIS%GRID_DEFINITION_SECTION_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC4_DESTRUCTOR) DESTROY_GRIB2_SECTION4( THIS%PRODUCT_DEFINITION_SECTION_, OPT, HOOKS ) - PP_TRYCALL(ERRFLAG_CALL_SEC5_DESTRUCTOR) DESTROY_GRIB2_SECTION5( THIS%DATA_REPRESENTATION_SECTION_, OPT, HOOKS ) -#if 0 - PP_TRYCALL(ERRFLAG_CALL_SEC6_DESTRUCTOR) DESTROY_GRIB2_SECTION6( THIS%BITMAP_SECTION_, OPT, HOOKS ) -#endif - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_SEC0_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'indicator section not associated' ) - CASE(ERRFLAG_SEC1_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'identification section not associated' ) - CASE(ERRFLAG_SEC2_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'local use section not associated' ) - CASE(ERRFLAG_SEC3_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'grid definition section not associated' ) - CASE(ERRFLAG_SEC4_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'product definition section not associated' ) - CASE(ERRFLAG_SEC5_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data representation section not associated' ) - CASE(ERRFLAG_SEC6_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'bitmap section not associated' ) - CASE(ERRFLAG_CALL_SEC0_DESTRUCTOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call indicator section destructor' ) - CASE(EERRFLAG_CALL_SEC1_DESTRUCTOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call identification section destructor' ) - CASE(EERRFLAG_CALL_SEC2_DESTRUCTOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call local use section destructor' ) - CASE(ERRFLAG_CALL_SEC3_DESTRUCTOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call grid definition section destructor' ) - CASE(ERRFLAG_CALL_SEC4_DESTRUCTOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call product definition section destructor' ) - CASE(ERRFLAG_CALL_SEC5_DESTRUCTOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call data representation section destructor' ) - CASE(ERRFLAG_CALL_SEC6_DESTRUCTOR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call bitmap section destructor' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_FREE -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - - -!> -!> @brief Print informations related to the grib section -!> -!> @section interface -!> @param [inout] THIS An object of type `GRIB_SECTION_BASE_A` representing the GRIB section to be freed. -!> @param [in] UNIT The unit to which the information will be printed. -!> @param [in] OFFSET The offset to be used for indentation. -!> @param [inout] HOOKS Utilities to be used for logging, debugging, tracing and option handling -!> -!> @return Integer error code (`RET`) indicating success or failure: -!> - `0`: Success -!> - `1`: Failure -!> -!> @section local dependencies -!> - @dependency [PARAMETER] DATAKINDS_DEF_MOD::JPIB_K -!> - @dependency [TYPE] PARAMETRIZATION_MOD::PARAMETRIZATION_T -!> - @dependency [TYPE] FORTRAN_MESSAGE_MOD::FORTRAN_MESSAGE_T -!> - @dependency [TYPE] HOOKS_MOD::HOOKS_T -!> -!> @section special dependencies -!> - @dependency [*] PP_DEBUG_USE_VARS::* -!> -!> @section intrinsic dependencies -!> None. -!> -#define PP_PROCEDURE_TYPE 'FUNCTION' -#define PP_PROCEDURE_NAME 'GRIB2_ENCODER_PRINT' -PP_THREAD_SAFE FUNCTION GRIB2_ENCODER_PRINT( THIS, & -& UNIT, OFFSET, OPT, HOOKS, SEPARATOR ) RESULT(RET) - - !> Symbols imported from other modules within the project. - USE :: DATAKINDS_DEF_MOD, ONLY: JPIB_K - USE :: HOOKS_MOD, ONLY: HOOKS_T - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T - - ! Symbols imported by the preprocessor for debugging purposes - PP_DEBUG_USE_VARS - - ! Symbols imported by the preprocessor for logging purposes - PP_LOG_USE_VARS - - ! Symbols imported by the preprocessor for tracing purposes - PP_TRACE_USE_VARS - -IMPLICIT NONE - - !> Dummy arguments - CLASS(GRIB2_ENCODER_T), INTENT(INOUT) :: THIS - INTEGER(KIND=JPIB_K), INTENT(IN) :: UNIT - INTEGER(KIND=JPIB_K), INTENT(IN) :: OFFSET - TYPE(GRIB_ENCODER_OPTIONS_T), INTENT(IN) :: OPT - TYPE(HOOKS_T), INTENT(INOUT) :: HOOKS - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: SEPARATOR - - !> Function result - INTEGER(KIND=JPIB_K) :: RET - - ! Local variables - INTEGER(KIND=JPIB_K) :: WRITE_STAT - - !> Local error codes - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC0_ASSOCIATED=1_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC1_ASSOCIATED=2_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC2_ASSOCIATED=3_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC3_ASSOCIATED=4_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC4_ASSOCIATED=5_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC5_ASSOCIATED=6_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_SEC6_ASSOCIATED=7_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_BASE_PRINT=8_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC0_PRINT=9_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: EERRFLAG_CALL_SEC1_PRINT=10_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: EERRFLAG_CALL_SEC2_PRINT=11_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC3_PRINT=12_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC4_PRINT=13_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC5_PRINT=14_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CALL_SEC6_PRINT=15_JPIB_K - INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_WRITE_ERROR=16_JPIB_K - - ! Local variables declared by the preprocessor for debugging purposes - PP_DEBUG_DECL_VARS - - ! Local variables declared by the preprocessor for logging purposes - PP_LOG_DECL_VARS - - ! Local variables declared by the preprocessor for tracing purposes - PP_TRACE_DECL_VARS - - ! Trace begin of procedure - PP_TRACE_ENTER_PROCEDURE() - - ! Initialization of good path return value - PP_SET_ERR_SUCCESS( RET ) - - ! Error handling - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%INDICATOR_SECTION_), ERRFLAG_SEC0_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%IDENTIFICATION_SECTION_), ERRFLAG_SEC1_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%LOCAL_USE_SECTION_), ERRFLAG_SEC2_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%GRID_DEFINITION_SECTION_), ERRFLAG_SEC3_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%PRODUCT_DEFINITION_SECTION_), ERRFLAG_SEC4_ASSOCIATED ) - PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%DATA_REPRESENTATION_SECTION_), ERRFLAG_SEC5_ASSOCIATED ) - ! PP_DEBUG_CRITICAL_COND_THROW( .NOT. ASSOCIATED(THIS%BITMAP_SECTION_), ERRFLAG_SEC6_ASSOCIATED ) - - ! Write the section information - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A,A,A,A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), 'GRIB_SECTION: ', TRIM(ADJUSTL(THIS%TYPE_)), '::', TRIM(ADJUSTL(THIS%SUBTYPE_)), '(', TRIM(ADJUSTL(THIS%KIND_)), '){' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - - !> Call nested print sections - PP_TRYCALL(ERRFLAG_CALL_SEC0_PRINT) THIS%INDICATOR_SECTION_%PRINT ( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(EERRFLAG_CALL_SEC1_PRINT) THIS%IDENTIFICATION_SECTION_%PRINT ( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(EERRFLAG_CALL_SEC2_PRINT) THIS%LOCAL_USE_SECTION_%PRINT ( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_SEC3_PRINT) THIS%GRID_DEFINITION_SECTION_%PRINT ( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_SEC4_PRINT) THIS%PRODUCT_DEFINITION_SECTION_%PRINT ( UNIT, OFFSET+2, OPT, HOOKS, ', ...' ) - PP_TRYCALL(ERRFLAG_CALL_SEC5_PRINT) THIS%DATA_REPRESENTATION_SECTION_%PRINT( UNIT, OFFSET+2, OPT, HOOKS ) - ! PP_TRYCALL(ERRFLAG_CALL_SEC6_PRINT) THIS%BITMAP_SECTION_%PRINT ( UNIT, OFFSET+2, OPT, HOOKS ) - - ! Close section - IF ( PRESENT(SEPARATOR) ) THEN - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}', TRIM(ADJUSTL(SEPARATOR)) - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ELSE - IF ( OFFSET .LE. 0 ) THEN - WRITE(UNIT,'(A)', IOSTAT=WRITE_STAT) '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ELSE - WRITE(UNIT,'(A,A)', IOSTAT=WRITE_STAT) REPEAT(' ',OFFSET), '}' - PP_DEBUG_CRITICAL_COND_THROW(WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) - ENDIF - ENDIF - - ! Trace end of procedure (on success) - PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() - - ! Exit point (On success) - RETURN - -! Error handler -PP_ERROR_HANDLER - - ! Initialization of bad path return value - PP_SET_ERR_FAILURE( RET ) - -#if defined( PP_DEBUG_ENABLE_ERROR_HANDLING ) -!$omp critical(ERROR_HANDLER) - - BLOCK - - ! Error handling variables - PP_DEBUG_PUSH_FRAME() - - ! Handle different errors - SELECT CASE(ERRIDX) - CASE(ERRFLAG_SEC0_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'indicator section not associated' ) - CASE(ERRFLAG_SEC1_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'identification section not associated' ) - CASE(ERRFLAG_SEC2_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'local use section not associated' ) - CASE(ERRFLAG_SEC3_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'grid definition section not associated' ) - CASE(ERRFLAG_SEC4_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'product definition section not associated' ) - CASE(ERRFLAG_SEC5_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'data representation section not associated' ) - CASE(ERRFLAG_SEC6_ASSOCIATED) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'bitmap section not associated' ) - CASE (ERRFLAG_WRITE_ERROR) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'error writing to given unit' ) - CASE(ERRFLAG_CALL_BASE_PRINT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call base print' ) - CASE(ERRFLAG_CALL_SEC0_PRINT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call indicator section print' ) - CASE(EERRFLAG_CALL_SEC1_PRINT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call identification section print' ) - CASE(EERRFLAG_CALL_SEC2_PRINT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call local use section print' ) - CASE(ERRFLAG_CALL_SEC3_PRINT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call grid definition section print' ) - CASE(ERRFLAG_CALL_SEC4_PRINT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call product definition section print' ) - CASE(ERRFLAG_CALL_SEC5_PRINT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call data representation section print' ) - CASE(ERRFLAG_CALL_SEC6_PRINT) - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unable to call bitmap section print' ) - CASE DEFAULT - PP_DEBUG_PUSH_MSG_TO_FRAME( 'unhandled error' ) - END SELECT - - ! Trace end of procedure (on error) - PP_TRACE_EXIT_PROCEDURE_ON_ERROR() - - ! Write the error message and stop the program - PP_DEBUG_ABORT - - END BLOCK - -!$omp end critical(ERROR_HANDLER) -#endif - - ! Exit point (on error) - RETURN - -END FUNCTION GRIB2_ENCODER_PRINT -#undef PP_PROCEDURE_NAME -#undef PP_PROCEDURE_TYPE - - -END MODULE GRIB2_ENCODER_MOD -#undef PP_SECTION_NAME -#undef PP_SECTION_TYPE -#undef PP_FILE_NAME diff --git a/src/multiom/ifs2mars/output-manager/model_data2multio_mod.F90 b/src/multiom/ifs2mars/output-manager/model_data2multio_mod.F90 index 7e1a2efe8..060023a72 100644 --- a/src/multiom/ifs2mars/output-manager/model_data2multio_mod.F90 +++ b/src/multiom/ifs2mars/output-manager/model_data2multio_mod.F90 @@ -1523,7 +1523,6 @@ PP_THREAD_SAFE FUNCTION MODEL_DATA2MULTIO_SETUP( THIS, YAMLFNAME, PROCESSOR_TOPO USE :: MULTIO_UTILS_MOD, ONLY: MULTIO_NEW_FROM_FILE USE :: MULTIO_UTILS_MOD, ONLY: MULTIO_SEND_PARAMETRISATION USE :: METADATA_FACTORY_MOD, ONLY: MAKE_METADATA - USE :: GRIB_ENCODER_OPTIONS_MOD, ONLY: GRIB_ENCODER_OPTIONS_T !> Symbols imported from other libraries USE :: GRIB_API, ONLY: GRIB_OPEN_FILE @@ -1560,9 +1559,6 @@ PP_THREAD_SAFE FUNCTION MODEL_DATA2MULTIO_SETUP( THIS, YAMLFNAME, PROCESSOR_TOPO CHARACTER(LEN=LEN(MODEL_DATA2MULTIO_OMNAME)) :: MODEL_DATA2MULTIO_OMNAME_LC CHARACTER(LEN=1024) :: SINK_FILE_NAME - ! Options - TYPE(GRIB_ENCODER_OPTIONS_T) :: ENCODER_OPTIONS - ! Error flags INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_CONFIGURATION_FILE_NOT_FOUND=1_JPIB_K INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_OPEN_CFG_FILE=2_JPIB_K @@ -1681,9 +1677,6 @@ PP_THREAD_SAFE FUNCTION MODEL_DATA2MULTIO_SETUP( THIS, YAMLFNAME, PROCESSOR_TOPO ! Initialize the geometry map PP_TRYCALL(ERRFLAG_UNABLE_TO_INT_GEOMETRY) THIS%INIT_GEOMETRY_MAP( HOOKS ) - ! Initialize the encoder options - ENCODER_OPTIONS%PRINT_DICTIONARIES = THIS%VERBOSE_ - !> Send parametrization to multio PP_TRYCALL(ERRFLAG_SEND_PARAMETRIZATION) MULTIO_SEND_PARAMETRISATION( MODEL_PARAMS, THIS%MIO_, HOOKS ) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 74d1f9255..91ec73fbb 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -6,7 +6,6 @@ add_subdirectory(ecom) if ( BUILD_MULTIOM ) add_subdirectory(multiom) - add_subdirectory(multio/mars2grib) add_subdirectory(multio/mars2mars) add_subdirectory(multio/action/encode-mtg2) endif() diff --git a/tests/multio/mars2grib/CMakeLists.txt b/tests/multio/mars2grib/CMakeLists.txt deleted file mode 100644 index 142aef07e..000000000 --- a/tests/multio/mars2grib/CMakeLists.txt +++ /dev/null @@ -1,46 +0,0 @@ - -set(PREFIX multio_tests_mars2grib) - -# Set IFS_INSTALL_DIR to the Multio source root directory. -file(REAL_PATH "../../../../" IFS_INSTALL_DIR BASE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - -list( APPEND _mars2grib_test_data - "mars-encoder-conf-test-aifs.tar.xz" - "mars-encoder-conf-test-era6-5220.tar.xz" -) - -ecbuild_get_test_multidata( - EXTRACT TARGET ${PREFIX}_get_data - DIRNAME multio/test-data/mars2grib - DIRLOCAL ${CMAKE_CURRENT_BINARY_DIR} - NAMES ${_mars2grib_test_data} -) - - -# Test to reparse MULTIOM configs in c++ -# Will be removed after C++ migration -ecbuild_add_test( TARGET ${PREFIX}_conf - SOURCES test_multio_mars2grib_conf.cc - LIBS multio multio-mars2grib) - -ecbuild_add_test( TARGET ${PREFIX}_infer_pdt - SOURCES test_multio_mars2grib_infer_pdt.cc - LIBS multio multio-mars2grib) - -ecbuild_add_test( TARGET ${PREFIX}_rules_gen - SOURCES test_multio_mars2grib_rules_gen.cc - TEST_REQUIRES ${PREFIX}_infer_pdt ${PREFIX}_conf ${PREFIX}_get_data - LIBS multio multio-mars2grib) - -ecbuild_add_test( TARGET ${PREFIX}_encode - SOURCES test_multio_mars2grib_encode.cc - TEST_REQUIRES ${PREFIX}_rules_gen - LIBS multio multio-mars2grib) - -# TBD -ecbuild_add_test( TARGET ${PREFIX}_setters - SOURCES test_multio_mars2grib_setters.cc - TEST_REQUIRES ${PREFIX}_rules_gen - LIBS multio multio-mars2grib) - - diff --git a/tests/multio/mars2grib/test_multio_mars2grib_conf.cc b/tests/multio/mars2grib/test_multio_mars2grib_conf.cc deleted file mode 100644 index ea81a6dfd..000000000 --- a/tests/multio/mars2grib/test_multio_mars2grib_conf.cc +++ /dev/null @@ -1,177 +0,0 @@ -/* - * (C) Copyright 1996- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation nor - * does it submit to any jurisdiction. - */ - -#include "eckit/config/LocalConfiguration.h" -#include "eckit/config/YAMLConfiguration.h" -#include "eckit/filesystem/PathName.h" -#include "eckit/testing/Test.h" -#include "multio/datamod/ContainerInterop.h" -#include "multio/datamod/core/Record.h" -#include "multio/mars2grib/EncoderConf.h" -#include "multio/util/Substitution.h" - -#include "multio/LibMultio.h" - -#include - - -namespace multio::test { - -namespace dm = multio::datamod; - -eckit::PathName encodeRulesPath() { - const auto root = multio::LibMultio::instance().libraryHome(); - setenv("IFS_INSTALL_DIR", root.c_str(), 0); - - return root + "/share/multiom/encodings/encoding-rules.yaml"; -} - -struct LoadedConf { - eckit::PathName file; - eckit::LocalConfiguration conf; -}; - - -bool compareLocalConf(const eckit::LocalConfiguration& lhs, const eckit::LocalConfiguration& rhs) { - auto lhsKeysVector = lhs.keys(); - auto rhsKeysVector = rhs.keys(); - std::unordered_set lhsKeys{lhsKeysVector.begin(), lhsKeysVector.end()}, - rhsKeys{rhsKeysVector.begin(), rhsKeysVector.end()}; - - if (lhsKeys.size() != rhsKeys.size()) { - std::cout << "Different number of keys: " << lhsKeysVector << " vs " << rhsKeysVector; - return false; - } - for (const auto& k : lhsKeys) { - if (auto search = rhsKeys.find(k); search == rhsKeys.end()) { - std::cout << "Keys " << k << " not given in rhs: " << rhsKeysVector; - return false; - } - } - - // Now iterate all keys and compare values - for (const auto& k : lhsKeys) { - // Using most ugly "reflection" possible - if (lhs.isString(k)) { - if (!rhs.isString(k)) { - std::cout << "Keys " << k << " is String but rhs is not " << rhs; - return false; - } - auto lhsVal = lhs.getString(k); - auto rhsVal = rhs.getString(k); - if (lhsVal != rhsVal) { - std::cout << "Values for key " << k << " differ: " << lhsVal << " != " << rhsVal << std::endl; - return false; - } - } - else if (lhs.isBoolean(k)) { - if (!rhs.isBoolean(k)) { - std::cout << "Keys " << k << " is Boolean but rhs is not " << rhs; - return false; - } - auto lhsVal = lhs.getBool(k); - auto rhsVal = rhs.getBool(k); - if (lhsVal != rhsVal) { - std::cout << "Values for key " << k << " differ: " << lhsVal << " != " << rhsVal << std::endl; - return false; - } - } - else if (lhs.isFloatingPoint(k)) { - if (!rhs.isFloatingPoint(k)) { - std::cout << "Keys " << k << " is FloatingPoint but rhs is not " << rhs; - return false; - } - auto lhsVal = lhs.getDouble(k); - auto rhsVal = rhs.getDouble(k); - if (lhsVal != rhsVal) { - std::cout << "Values for key " << k << " differ: " << lhsVal << " != " << rhsVal << std::endl; - return false; - } - } - else if (lhs.isIntegral(k)) { - if (!rhs.isIntegral(k)) { - std::cout << "Keys " << k << " is Integral but rhs is not " << rhs; - return false; - } - auto lhsVal = lhs.getInt64(k); - auto rhsVal = rhs.getInt64(k); - if (lhsVal != rhsVal) { - std::cout << "Values for key " << k << " differ: " << lhsVal << " != " << rhsVal << std::endl; - return false; - } - } - else if (lhs.isSubConfiguration(k)) { - if (!rhs.isSubConfiguration(k)) { - std::cout << "Keys " << k << " is subConfiguration but rhs is not " << rhs; - return false; - } - if (!compareLocalConf(rhs.getSubConfiguration(k), lhs.getSubConfiguration(k))) { - return false; - } - } - else { - std::cout << "Unhandled type for key " << k << " - lhs: " << lhs << " rhs: " << rhs; - return false; - } - } - - // if (lhs.get() == rhs.get()) { - // return true; - // } - - // eckit::JSON json(std::cout); - // std::cout << "LHS: \n"; - // json << lhs; - // std::cout << "\n\t != RHS: \n"; - // json << rhs; - return true; -}; - -std::vector loadRuleFiles() { - auto rules = eckit::LocalConfiguration{eckit::YAMLConfiguration{encodeRulesPath()}}; - if (!rules.has("encoding-rules")) { - std::ostringstream oss; - oss << "No key \"encoding-rules\" in rules file " << rules << std::endl; - throw eckit::Exception(oss.str(), Here()); - } - auto subConf = rules.getSubConfigurations("encoding-rules"); - - std::vector ret; - ret.reserve(subConf.size()); - - for (auto& sc : subConf) { - eckit::PathName file = util::replaceCurly(sc.getString("file")); - eckit::LocalConfiguration conf = eckit::LocalConfiguration{eckit::YAMLConfiguration{file}}; - ret.push_back({std::move(file), std::move(conf)}); - } - return ret; -} - - -CASE("Test parsing and comparing rule files") { - for (const auto& loadedRule : loadRuleFiles()) { - using namespace datamod; - std::cout << "Parsing and comparing rule: " << loadedRule.file << std::endl; - - auto encoderConf = loadedRule.conf.getSubConfiguration("encoder"); - auto sections = dm::readRecord(encoderConf); - // Delete key "type" because we don't consider it - // encoderConf.remove("type"); - - auto rewriteConf = dm::dumpRecord(sections); - EXPECT(compareLocalConf(encoderConf, rewriteConf)); - } -}; - -} // namespace multio::test - -int main(int argc, char** argv) { - return eckit::testing::run_tests(argc, argv); -} diff --git a/tests/multio/mars2grib/test_multio_mars2grib_encode.cc b/tests/multio/mars2grib/test_multio_mars2grib_encode.cc deleted file mode 100644 index 92baf5b4a..000000000 --- a/tests/multio/mars2grib/test_multio_mars2grib_encode.cc +++ /dev/null @@ -1,81 +0,0 @@ -/* - * (C) Copyright 1996- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation nor - * does it submit to any jurisdiction. - */ - -#include "eckit/testing/Test.h" - -#include "multio/datamod/AtlasGeo.h" -#include "multio/datamod/ContainerInterop.h" -#include "multio/datamod/MarsMiscGeo.h" -#include "multio/datamod/core/EntryParser.h" -#include "multio/datamod/core/Record.h" -#include "multio/mars2grib/EncoderCache.h" - -#include "multio/datamod/AtlasGeo.h" - -#include "multio/message/Metadata.h" - -#include "multio/util/SampleMetadataGen.h" - - -namespace multio::test { - -namespace dm = multio::datamod; - -CASE("Test cache.getHandle with AIFS single keys") { - using namespace multio::mars2grib::rules; - using namespace multio::mars2grib; - - EncoderCache cache{}; - dm::MiscRecord misc; - dm::applyRecordDefaults(misc); - dm::validateRecord(misc); - - for (auto md : multio::util::sample_gen::mkAifsSingleMd()) { - try { - auto mars = dm::readRecord(md); - auto geo = dm::makeUnscopedGeometry(mars); - auto handle = cache.getHandle(mars, misc, geo); - } - catch (...) { - std::cout << "Error while generating & comparing message: " << md << std::endl; - throw; - } - } -}; - -CASE("Test cache.getHandle with AIFS ens keys") { - using namespace multio::mars2grib::rules; - using namespace multio::mars2grib; - - EncoderCache cache{}; - dm::MiscRecord misc; - misc.typeOfEnsembleForecast.set(1); - misc.numberOfForecastsInEnsemble.set(50); - dm::applyRecordDefaults(misc); - dm::validateRecord(misc); - - for (auto md : multio::util::sample_gen::mkAifsEnsMd()) { - try { - auto mars = dm::readRecord(md); - auto geo = dm::makeUnscopedGeometry(mars); - auto handle = cache.getHandle(mars, misc, geo); - } - catch (...) { - std::cout << "Error while generating & comparing message: " << md << std::endl; - throw; - } - } -}; - -} // namespace multio::test - -int main(int argc, char** argv) { - return eckit::testing::run_tests(argc, argv); -} diff --git a/tests/multio/mars2grib/test_multio_mars2grib_helper.h b/tests/multio/mars2grib/test_multio_mars2grib_helper.h deleted file mode 100644 index c78190f96..000000000 --- a/tests/multio/mars2grib/test_multio_mars2grib_helper.h +++ /dev/null @@ -1,124 +0,0 @@ -#include "eckit/config/YAMLConfiguration.h" -#include "multio/datamod/ContainerInterop.h" -#include "multio/datamod/MarsMiscGeo.h" -#include "multio/mars2grib/EncoderConf.h" -#include "multio/mars2grib/Mars2GribException.h" - -#include - -namespace multio::test { - -namespace dm = multio::datamod; - -mars2grib::SectionsConf expectedAIFSSingleEncoderSections(const dm::FullMarsRecord& mars) { - ASSERT(mars.param.isSet()); - - auto toSections = [](std::string&& str) { - return dm::readRecord( - eckit::LocalConfiguration{eckit::YAMLConfiguration{std::move(str)}}); - }; - switch (mars.param.get().id()) { - case 134: - case 235: - case 141: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":0,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"None","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"surface"}},"data-representation-section":{"template-number":42}})json"); - case 151: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":0,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"None","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"meanSea"}},"data-representation-section":{"template-number":42}})json"); - case 165: - case 166: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":0,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"None","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"heightAboveGroundAt10m","fixed-level":10}},"data-representation-section":{"template-number":42}})json"); - case 167: - case 168: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":0,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"None","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"heightAboveGroundAt2m","fixed-level":2}},"data-representation-section":{"template-number":42}})json"); - case 136: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":0,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"None","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"entireAtmosphere"}},"data-representation-section":{"template-number":42}})json"); - case 143: - case 228: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":8,"product-categories":{"timeExtent":"timeRange","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"None","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"},"time-statistics-configurator":{"type":"since-last-post-processing-step","type-of-statistical-processing":"accumul"},"level-configurator":{"type":"surface"}},"data-representation-section":{"template-number":42}})json"); - case 129: - case 130: - case 131: - case 132: - case 133: - case 135: { - ASSERT(mars.levelist.isSet()); - if (mars.levelist.get() < 100) { - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":0,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"None","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"isobaricInPa"}},"data-representation-section":{"template-number":42}})json"); - } - else { - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":0,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"None","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"isobaricInhPa"}},"data-representation-section":{"template-number":42}})json"); - } - } - default: - std::ostringstream oss; - util::PrintStream ps(oss); - ps << "aifsSingleConfForParam: no mapping for param: " << mars.param; - throw mars2grib::Mars2GribException(oss.str(), Here()); - } -} - - -mars2grib::SectionsConf expectedAIFSEnsEncoderSections(const dm::FullMarsRecord& mars) { - ASSERT(mars.param.isSet()); - - auto toSections = [](std::string&& str) { - return dm::readRecord( - eckit::LocalConfiguration{eckit::YAMLConfiguration{std::move(str)}}); - }; - switch (mars.param.get().id()) { - case 134: - case 235: - case 141: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":1,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"ensemble","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"}, "ensemble-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"surface"}},"data-representation-section":{"template-number":42}})json"); - case 151: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":1,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"ensemble","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"}, "ensemble-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"meanSea"}},"data-representation-section":{"template-number":42}})json"); - case 165: - case 166: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":1,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"ensemble","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"}, "ensemble-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"heightAboveGroundAt10m","fixed-level":10}},"data-representation-section":{"template-number":42}})json"); - case 167: - case 168: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":1,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"ensemble","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"}, "ensemble-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"heightAboveGroundAt2m","fixed-level":2}},"data-representation-section":{"template-number":42}})json"); - case 136: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":1,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"ensemble","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"}, "ensemble-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"entireAtmosphere"}},"data-representation-section":{"template-number":42}})json"); - case 143: - case 228: - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":11,"product-categories":{"timeExtent":"timeRange","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"ensemble","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"}, "ensemble-configurator":{"type":"default"},"time-statistics-configurator":{"type":"since-last-post-processing-step","type-of-statistical-processing":"accumul"},"level-configurator":{"type":"surface"}},"data-representation-section":{"template-number":42}})json"); - case 129: - case 130: - case 131: - case 132: - case 133: - case 135: { - ASSERT(mars.levelist.isSet()); - if (mars.levelist.get() < 100) { - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":1,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"ensemble","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"}, "ensemble-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"isobaricInPa"}},"data-representation-section":{"template-number":42}})json"); - } - else { - return toSections( - R"json({"indicator-section":{"template-number":0},"identification-section":{"template-number":0,"origin-configurator":{"type":"default"},"data-type-configurator":{"type":"default"},"reference-time-configurator":{"type":"default"},"tables-configurator":{"type":"default","local-tables-version":0}},"local-use-section":{"template-number":1},"grid-definition-section":{"template-number":40},"product-definition-section":{"template-number":1,"product-categories":{"timeExtent":"pointInTime","timeFormat":"None","spatialExtent":"None","processType":"None","processSubType":"ensemble","productCategory":"None","productSubCategory":"None"},"param-configurator":{"type":"paramId"},"model-configurator":{"type":"default"}, "ensemble-configurator":{"type":"default"},"point-in-time-configurator":{"type":"default"},"level-configurator":{"type":"isobaricInhPa"}},"data-representation-section":{"template-number":42}})json"); - } - } - default: - std::ostringstream oss; - util::PrintStream ps(oss); - ps << "aifsSingleConfForParam: no mapping for param: " << mars.param; - throw mars2grib::Mars2GribException(oss.str(), Here()); - } -} - -} // namespace multio::test diff --git a/tests/multio/mars2grib/test_multio_mars2grib_infer_pdt.cc b/tests/multio/mars2grib/test_multio_mars2grib_infer_pdt.cc deleted file mode 100644 index 62f2b0568..000000000 --- a/tests/multio/mars2grib/test_multio_mars2grib_infer_pdt.cc +++ /dev/null @@ -1,35 +0,0 @@ -/* - * (C) Copyright 1996- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation nor - * does it submit to any jurisdiction. - */ - -#include "eckit/testing/Test.h" -#include "multio/datamod/ContainerInterop.h" - -#include "multio/mars2grib/generated/InferPDT.h" -#include "multio/mars2grib/generated/InferPDTTest.h" - - -namespace multio::test { - - -CASE("Test mapping pdt from metadata") { - using namespace multio::mars2grib::rules::test; - using namespace multio::mars2grib::rules; - for (const PdtWithSelector& pdtWithSelector : mappedPdtAndSelectors) { - auto pdtRec = dm::readRecord(pdtWithSelector.selector); - auto pdt = InferPdt{}.inferProductDefinitionTemplateNumber(pdtRec); - EXPECT_EQUAL(pdt, pdtWithSelector.productDefinitionTemplateNumber); - } -}; - -} // namespace multio::test - -int main(int argc, char** argv) { - return eckit::testing::run_tests(argc, argv); -} diff --git a/tests/multio/mars2grib/test_multio_mars2grib_rules_gen.cc b/tests/multio/mars2grib/test_multio_mars2grib_rules_gen.cc deleted file mode 100644 index 99d8a7c1f..000000000 --- a/tests/multio/mars2grib/test_multio_mars2grib_rules_gen.cc +++ /dev/null @@ -1,311 +0,0 @@ -/* - * (C) Copyright 1996- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation nor - * does it submit to any jurisdiction. - */ - -#include "eckit/config/LocalConfiguration.h" -#include "eckit/config/YAMLConfiguration.h" -#include "eckit/filesystem/PathName.h" -#include "eckit/testing/Test.h" - -#include "multio/datamod/ContainerInterop.h" -#include "multio/datamod/core/EntryDef.h" -#include "multio/mars2grib/EncoderConf.h" -#include "multio/mars2grib/Rules.h" -#include "multio/mars2grib/generated/InferPDT.h" -#include "multio/mars2grib/rules/Matcher.h" -#include "multio/mars2grib/rules/Rule.h" - -#include "multio/datamod/MarsMiscGeo.h" -#include "multio/mars2grib/sections/Level.h" -#include "multio/util/Print.h" -#include "multio/util/SampleMetadataGen.h" -#include "test_multio_mars2grib_helper.h" - - -namespace multio::test { - -namespace dm = multio::datamod; - -CASE("Test rules gen matchers") { - using namespace multio::mars2grib::rules; - using namespace multio::mars2grib::matcher; - using namespace multio::mars2grib; - - static auto ruleSet = exclusiveRuleList("testRuleSet", - // Branch for grids - chainedRuleList( - rule(all(Has{&dm::FullMarsRecord::grid}, NoneOf{&dm::FullMarsRecord::levtype, {dm::LevType::AL}})), - rule(OneOf{&dm::FullMarsRecord::param, {1, 3, 4}}, Setter([](SectionsConf& c) { - c.product.ensureInit().modify().pdtCat.ensureInit().modify().timeExtent.set( - TimeExtent::PointInTime); - c.product.ensureInit().modify().level.ensureInit().modify().type.set( - dm::TypeOfLevel::HeightAboveGround); - }))), - - // Branch for spherical harmonics - chainedRuleList( - rule(all(Has{&dm::FullMarsRecord::truncation}, NoneOf{&dm::FullMarsRecord::levtype, {dm::LevType::AL}}))), - - // Branch for abstract level - chainedRuleList(rule(OneOf{&dm::FullMarsRecord::levtype, {dm::LevType::AL}}))); - - { - dm::FullMarsRecord mars{}; - SectionsConf sections; - - // Nothing should match the outer rule, which is allowed to not match - EXPECT(ruleSet(mars, sections) != true); - } - - { - auto md = util::sample_gen::mkMd(); - md.set("param", 1); - - auto mars = dm::readRecord(md); - SectionsConf sections; - - EXPECT(ruleSet(mars, sections)); - EXPECT((sections.product.get().level.get().type.get()) == dm::TypeOfLevel::HeightAboveGround); - EXPECT(((sections.product.get().pdtCat.get().timeExtent.get()) == TimeExtent::PointInTime)); - } - - { - auto md = util::sample_gen::mkMd(); - md.set("param", 42); // Not included in rule - - auto mars = dm::readRecord(md); - SectionsConf sections; - - // First rule matches because grid is given, but then no param matches - the rule is not fully determined and - // throws - EXPECT_THROWS(ruleSet(mars, sections)); - } -}; - - -// KeyValueSets can be comprade directly, but here -// we want to exclude comparision of specific sections in detail until fully migrated -// Moreover this mechanism shows more detailed errors -template -void detailedCompare(const Rec& computed, const Rec& expected) { - using namespace multio::mars2grib; - try { - - util::forEach( - [&](const auto& entryDef) { - // Exclude comparison for specific fields - if constexpr (std::is_same_v, rules::PDTCat>) { - return; - } - if constexpr (std::is_same_v) { - if (entryDef.key() == sections::FixedLevel.key()) { - return; - } - } - - const auto& compEntry = entryDef.get(computed); - const auto& exptEntry = entryDef.get(expected); - if constexpr (dm::IsRecord_v>) { - if (compEntry.isSet() && !exptEntry.isSet()) { - std::ostringstream oss; - util::PrintStream ps(oss); - ps << "Nested record " << entryDef.keyInfo() - << " is given but expected to be missing. Computed: "; - ps << compEntry; - oss << std::endl; - throw eckit::Exception(oss.str(), Here()); - } - if (!compEntry.isSet() && exptEntry.isSet()) { - std::ostringstream oss; - util::PrintStream ps(oss); - ps << "Nested record " << entryDef.keyInfo() - << " is missing but expected to be given. Expected: " << std::endl; - ps << exptEntry << std::endl; - ps << std::endl; - throw eckit::Exception(oss.str(), Here()); - } - if (compEntry.isSet() && exptEntry.isSet()) { - try { - detailedCompare(compEntry.get(), exptEntry.get()); - } - catch (...) { - std::cout << "Error comparing entry " << entryDef.keyInfo() << std::endl; - throw; - } - } - } - else { - if (compEntry != exptEntry) { - std::ostringstream oss; - util::PrintStream ps(oss); - ps << "Entries for " << entryDef.keyInfo() << " do not compare - got: " << std::endl; - ps << compEntry << std::endl; - ps << " - expected: " << std::endl; - ps << exptEntry; - ps << std::endl; - throw eckit::Exception(oss.str(), Here()); - } - } - }, - dm::recordEntries(computed)); - } - catch (...) { - util::PrintStream ps{std::cout}; - ps << "Error comparing computed: " << std::endl; - { - util::IndentGuard g{ps}; - ps << computed << std::endl; - } - ps << "with expected: " << std::endl; - { - util::IndentGuard g{ps}; - ps << expected << std::endl; - } - std::cout << std::flush; - throw; - } -} - -CASE("Test real rules matchers with AIFS single keys") { - using namespace multio::mars2grib::rules; - using namespace multio::mars2grib; - - for (auto md : multio::util::sample_gen::mkAifsSingleMd()) { - try { - auto mars = dm::readRecord(md); - SectionsConf sections; - - - EXPECT(allRules()(mars, sections)); - EXPECT_NO_THROW(dm::applyRecordDefaults(sections)); - EXPECT_NO_THROW(dm::validateRecord(sections)); - - EXPECT((sections.product.get().templateNumber.isSet())); - - SectionsConf expectedSections = expectedAIFSSingleEncoderSections(mars); - - detailedCompare(sections, expectedSections); - } - catch (...) { - std::cout << "Error while generating & comparing message: " << md << std::endl; - throw; - } - } -}; - - -CASE("Test real rules matchers with AIFS ens keys") { - using namespace multio::mars2grib::rules; - using namespace multio::mars2grib; - - for (auto md : multio::util::sample_gen::mkAifsEnsMd()) { - try { - auto mars = dm::readRecord(md); - SectionsConf sections; - - - EXPECT(mars2grib::rules::allRules()(mars, sections)); - EXPECT_NO_THROW(dm::applyRecordDefaults(sections)); - EXPECT_NO_THROW(dm::validateRecord(sections)); - - EXPECT((sections.product.get().templateNumber.isSet())); - - SectionsConf expectedSections = expectedAIFSEnsEncoderSections(mars); - - detailedCompare(sections, expectedSections); - } - catch (...) { - std::cout << "Error while generating & comparing message: " << md << std::endl; - throw; - } - } -}; - - -CASE("Test real rules matchers with AIFS JSON rules") { - using namespace multio::mars2grib::rules; - using namespace multio::mars2grib; - - auto marsMessages - = eckit::LocalConfiguration{eckit::YAMLConfiguration{eckit::PathName{"mars-encoder-conf-test-aifs.json"}}} - .getSubConfigurations("rules"); - - std::size_t i = 0; - for (auto subConf : marsMessages) { - ++i; - eckit::LocalConfiguration marsConf = subConf.getSubConfiguration("message"); - try { - auto mars = dm::readRecord(marsConf); - SectionsConf expectedSections = dm::readRecord(subConf.getSubConfiguration("rule")); - - SectionsConf computedSections; - - EXPECT(mars2grib::rules::allRules()(mars, computedSections)); - EXPECT_NO_THROW(dm::applyRecordDefaults(computedSections)); - EXPECT_NO_THROW(dm::validateRecord(computedSections)); - - detailedCompare(computedSections, expectedSections); - } - catch (...) { - // Print additional information and rethrow - std::cout << i << "/" << marsMessages.size() << ": error for mars conf: "; - util::print(std::cout, marsConf); - std::cout << std::endl; - util::print(std::cout, subConf); - std::cout << std::endl; - throw; - }; - } -}; - - -// TODO(pgeier) have commented because of changes in the rules. New json must be generated. -// But after merge this code is not needed anymore -// CASE("Test real rules matchers with era6 5220 JSON rules") { -// using namespace multio::mars2grib::rules; -// using namespace multio::mars2grib; - -// auto marsMessages -// = -// eckit::LocalConfiguration{eckit::YAMLConfiguration{eckit::PathName{"mars-encoder-conf-test-era6-5220.json"}}} -// .getSubConfigurations("rules"); - -// std::size_t i = 0; -// for (auto subConf : marsMessages) { -// ++i; -// eckit::LocalConfiguration marsConf = subConf.getSubConfiguration("message"); -// try { -// auto mars = dm::readRecord(marsConf); -// SectionsConf expectedSections = dm::readRecord(subConf.getSubConfiguration("rule")); - -// SectionsConf computedSections; - -// EXPECT(mars2grib::rules::allRules()(mars, computedSections)); -// EXPECT_NO_THROW(dm::applyRecordDefaults(computedSections)); -// EXPECT_NO_THROW(dm::validateRecord(computedSections)); - -// detailedCompare(computedSections, expectedSections); -// } -// catch (...) { -// // Print additional information and rethrow -// std::cout << i << "/" << marsMessages.size() << ": error for mars conf: "; -// util::print(std::cout, marsConf); -// std::cout << std::endl; -// util::print(std::cout, subConf); -// std::cout << std::endl; -// throw; -// }; -// } -// }; - -} // namespace multio::test - -int main(int argc, char** argv) { - return eckit::testing::run_tests(argc, argv); -} diff --git a/tests/multio/mars2grib/test_multio_mars2grib_setters.cc b/tests/multio/mars2grib/test_multio_mars2grib_setters.cc deleted file mode 100644 index b6a7b8852..000000000 --- a/tests/multio/mars2grib/test_multio_mars2grib_setters.cc +++ /dev/null @@ -1,86 +0,0 @@ -/* - * (C) Copyright 1996- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * In applying this licence, ECMWF does not waive the privileges and immunities - * granted to it by virtue of its status as an intergovernmental organisation nor - * does it submit to any jurisdiction. - */ - -#include "eckit/testing/Test.h" -#include "multio/datamod/ContainerInterop.h" -#include "multio/mars2grib/EncoderConf.h" -#include "multio/mars2grib/Mars2GribException.h" -#include "multio/mars2grib/Rules.h" -#include "multio/mars2grib/generated/InferPDT.h" -#include "multio/mars2grib/rules/Rule.h" -#include "multio/mars2grib/sections/Level.h" -#include "multio/mars2grib/sections/SectionSetter.h" - -#include "multio/datamod/GribKeys.h" -#include "multio/datamod/MarsMiscGeo.h" -#include "multio/message/Metadata.h" - - -#include "multio/util/SampleMetadataGen.h" - -#include - - -namespace multio::test { - -namespace dm = multio::datamod; - -CASE("Test level setter") { - using namespace multio::mars2grib::rules; - using namespace multio::mars2grib; - using namespace multio::mars2grib::sections; - - std::vector> tols{ - {"ml", dm::TypeOfLevel::Hybrid}, - {"ml", dm::TypeOfLevel::Snow}, - {"sfc", dm::TypeOfLevel::HeightAboveGround}, - {"sfc", dm::TypeOfLevel::HeightAboveGroundAt10m}, - }; - - for (const auto& p : tols) { - SectionCollector col; - auto levtypeStr = p.first; - auto tol = p.second; - - LevelConfigurator conf; - conf.type.set(tol); - col.add(std::make_unique(conf)); - - auto md = util::sample_gen::mkMd(); - md.set("levtype", levtypeStr); - md.set("misc-pv", std::vector{{0.1, 0.2, 0.3}}); - - auto mars = dm::readRecord(md); - auto scopedMisc = dm::scopeRecord(dm::MiscRecord{}); - dm::readRecord(scopedMisc, md); - auto misc = dm::unscopeRecord(std::move(scopedMisc)); - - // auto geo = read(getGeometryKeySet(mars), md); - // Ignore geo for now.. may cause other problems - dm::Geometry geo{}; // UNCHECKED - - // std::cout << "Example for required level keys: " << std::endl; - // col.writeKeyInfo(std::cout, mars); - - // TBD - // col.prepare(*sample.get(), mars, misc, geo); - // col.allocate(*sample.get(), mars, misc, geo); - // col.preset(*sample.get(), mars, misc, geo); - // col.runtime(*sample.get(), mars, misc, geo); - // col.check(*sample.get(), mars, misc, geo); - } -} - - -} // namespace multio::test - -int main(int argc, char** argv) { - return eckit::testing::run_tests(argc, argv); -} diff --git a/tests/multio/test_multio_datamod_models.cc b/tests/multio/test_multio_datamod_models.cc index 5b8329f2d..67892ac23 100644 --- a/tests/multio/test_multio_datamod_models.cc +++ b/tests/multio/test_multio_datamod_models.cc @@ -13,10 +13,10 @@ #include "multio/datamod/ContainerInterop.h" #include "multio/datamod/MarsMiscGeo.h" +#include "multio/datamod/MarsCachedKeys.h" #include "multio/datamod/types/LevType.h" #include "multio/datamod/types/TypeOfStatisticalProcessing.h" -#include "multio/mars2grib/MarsCachedKeys.h" #include "multio/datamod/core/EntryParser.h" #include "multio/message/Metadata.h" @@ -187,39 +187,39 @@ CASE("Test encoder hashes") { mk2.frequency.set(11); mk2.direction.set(11); - EXPECT_EQUAL(util::hash(readRecord(mk1)), - util::hash(readRecord(mk2))); + EXPECT_EQUAL(util::hash(readRecord(mk1)), + util::hash(readRecord(mk2))); auto mk22 = mk2; mk22.levelist.set(1); // LEVEL can change hash ? - EXPECT(util::hash(readRecord(mk1)) - != util::hash(readRecord(mk22))); + EXPECT(util::hash(readRecord(mk1)) + != util::hash(readRecord(mk22))); auto mk3 = marsKeys; mk3.param.set(123); // Change param because hash should be different to mk1 & 2 - EXPECT(util::hash(readRecord(mk1)) - != util::hash(readRecord(mk3))); + EXPECT(util::hash(readRecord(mk1)) + != util::hash(readRecord(mk3))); mk3.levtype.set("ml"); auto mk4 = mk3; mk3.levelist.set(9000); // FOR ml levelist should not change hash - EXPECT_EQUAL(util::hash(readRecord(mk3)), - util::hash(readRecord(mk4))); + EXPECT_EQUAL(util::hash(readRecord(mk3)), + util::hash(readRecord(mk4))); // Example cache - std::unordered_map cache{}; - cache.insert_or_assign(readRecord(mk1), 1); - cache.insert_or_assign(readRecord(mk2), 2); - cache.insert_or_assign(readRecord(mk22), 22); - cache.insert_or_assign(readRecord(mk3), 3); - cache.insert_or_assign(readRecord(mk4), 4); - - EXPECT_EQUAL(cache[readRecord(mk1)], 2); - EXPECT_EQUAL(cache[readRecord(mk2)], 2); - EXPECT_EQUAL(cache[readRecord(mk22)], 22); - EXPECT_EQUAL(cache[readRecord(mk3)], 4); - EXPECT_EQUAL(cache[readRecord(mk4)], 4); + std::unordered_map cache{}; + cache.insert_or_assign(readRecord(mk1), 1); + cache.insert_or_assign(readRecord(mk2), 2); + cache.insert_or_assign(readRecord(mk22), 22); + cache.insert_or_assign(readRecord(mk3), 3); + cache.insert_or_assign(readRecord(mk4), 4); + + EXPECT_EQUAL(cache[readRecord(mk1)], 2); + EXPECT_EQUAL(cache[readRecord(mk2)], 2); + EXPECT_EQUAL(cache[readRecord(mk22)], 22); + EXPECT_EQUAL(cache[readRecord(mk3)], 4); + EXPECT_EQUAL(cache[readRecord(mk4)], 4); };